1.如果條件中有or,即使其中有條件帶索引也不會使用(這也是為什麼盡量少用or的原因)
注意:要想使用or,又想讓索引生效,只能將or條件中的每個列都加上索引
2.對於多列索引,不是使用的第一部分,則不會使用索引
3.like查詢是以%開頭
4.如果列型別是字串,那一定要在條件中將資料使用引號引用起來,否則不使用索引
5.如果mysql估計使用全表掃瞄要比使用索引快,則不使用索引
檢視索引的使用情況:
show status like 『handler_read%』;
注意:handler_read_key:這個值越高越好,越高表示使用索引查詢到的次數
handler_read_rnd_next:這個值越高,說明查詢低效
多列索引:
MySQL索引 組合索引,什麼時候使用索引?
表abc,建立組合索引 a,b,c 語句 是否使用索引 使用情況 1where a 1 and b 2 and c 3 是a,b,c 2where a 1 and b 2 是a,b 3where a 1 是a 4where a 1 or b 2 是 當只有 a,b,c列時,一般實際中不會出現這樣的情...
MySql中什麼時候建立索引?
索引 index 是幫助mysql高效獲取資料的資料結構。所以說索引的本質是 資料結構。簡單理解就是 排好序的快速查詢資料的資料結構。一般來說,索引本身也很大,不可能全部儲存在記憶體中,所以通常以索引檔案的形式儲存在磁碟上。高效的檢索資料 通過索引列隊資料排序 更新表 增 刪 改 的同時也需要更新索...
mysql什麼時候用in,什麼時候用exists
目錄 寫在前面 給你答案 in exists 結論 網上看帖子的時候,經常會看到說盡量用exists,少用in。那麼問題來了,是所有場景下都盡量用exists嗎,還是具體場景具體分析。mysql做子查詢的時候,永遠記得要小表驅動大表。select from a where id in select ...