There is one bug, or "missing feature" in MySQL Optimizer which may give you hard time causing performance problems which may be hard to track down, it is using only part of the index when full index can be used or using shorter index while there is longer index available. The last item is yet another good reason for removing redundant indexes
Here is example from NNSEEK database:
PLAIN TEXT SQL:
- mysql> EXPLAIN SELECT thread_id FROM nn2_msg132.msg132 WHERE group_id=398157 AND parent_id=0 AND (published BETWEEN '2006-12-02 00:00:00' AND '2006-12-02 23:59:59') ORDER BY published DESC LIMIT 0,10 \G
- *************************** 1. row ***************************
- …