Mysql 建立聯合索引注意事項

2022-04-12 08:02:29 字數 348 閱讀 6325

當乙個表有多條索引可走時,  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, 導致查詢比較慢.

解決辦法是將索引欄位的順序調換一下.

MySQL建立索引的注意事項

對於大資料量的 尤其是百萬行以上的資料表,一定要對其建立索引,否則查詢速度極慢。參考後面的測試結果 建立索引時需注意 mysql的索引有兩種 單列索引 即在某一列上建索引 多列組合索引 即在多個列上建立同乙個索引 不像sql server分聚集索引,非聚集索引。如何建立單列索引 格式 create ...

mysql索引注意事項

在查詢條件中必須有復合索引還中最左側的列 在建立多列索引時,要根據業務需求,where子句中使用最頻繁的一列放在最左邊 假設你在表的state city和zip資料列上建立了復合索引。索引中的資料行按照state city zip次序排列,因此它們也會自動地按照state city和state次序排...

mysql索引注意事項

1.模糊查詢前導不會走索引 select id,user name,price code from user activity info where user name like zhang 如果非要使用前導索引的話可以借助apache的lucence索引工具 2.欄位預設值不要設定成null 如果...