當一個表有多條索引可走時, Mysql 根據查詢語句的成本來選擇走哪條索引, 聯合索引的話, 它往往計算的是第一個字段(最左邊那個), 這樣往往會走錯索引. 如:
索引Index_1(Create_Time, Category_ID), Index_2(Category_ID)
如果每天的數據都特別多, 而且有很多category, 但具體每個category的記錄不會很多.
當查詢SQL條件為select …where create_time ….and category_id=..時, 很可能不走索引Index_1, 而走索引Index_2, 導致查詢比較慢.
解決辦法是將索引字段的順序調換一下.
