mysql整数索引没用到_MYSQL 索引无效和索引有效的详细介绍
1、WHERE字句的查詢條件里有不等于號(hào)(WHERE column!=...),MYSQL將無(wú)法使用索引
2、類似地,如果WHERE字句的查詢條件里使用了函數(shù)(如:WHERE DAY(column)=...),MYSQL將無(wú)法使用索引
3、在JOIN操作中(需要從多個(gè)數(shù)據(jù)表提取數(shù)據(jù)時(shí)),MYSQL只有在主鍵和外鍵的數(shù)據(jù)類型相同時(shí)才能使用索引,否則即使建立了
索引也不會(huì)使用
4、如果WHERE子句的查詢條件里使用了比較操作符LIKE和REGEXP,MYSQL只有在搜索模板的第一個(gè)字符不是通配符的情況下才能
使用索引。比如說(shuō),如果查詢條件是LIKE 'abc%',MYSQL將使用索引;如果條件是LIKE '%abc',MYSQL將不使用索引。
5、在ORDER BY操作中,MYSQL只有在排序條件不是一個(gè)查詢條件表達(dá)式的情況下才使用索引。盡管如此,在涉及多個(gè)數(shù)據(jù)表的查
詢里,即使有索引可用,那些索引在加快ORDER BY操作方面也沒(méi)什么作用。
6、如果某個(gè)數(shù)據(jù)列里包含著許多重復(fù)的值,就算為它建立了索引也不會(huì)有很好的效果。比如說(shuō),如果某個(gè)數(shù)據(jù)列里包含了凈是
些諸如“0/1”或“Y/N”等值,就沒(méi)有必要為它創(chuàng)建一個(gè)索引。
7、索引有用的情況下就太多了。
基本只要建立了索引,除了上面提到的索引不會(huì)使用的情況下之外,其他情況只要是使用在
WHERE條件里,ORDER BY 字段,聯(lián)表字段,一般都是有效的。 建立索引要的就是有效果。 不然還用它干嗎? 如果不能確定在
某個(gè)字段上建立的索引是否有效果,只要實(shí)際進(jìn)行測(cè)試下比較下執(zhí)行時(shí)間就知道
此外,查看索引的使用情況
show status like ‘Handler_read%';
大家可以注意:
handler_read_key:這個(gè)值越高越好,越高表示使用索引查詢到的次數(shù)
handler_read_rnd_next:這個(gè)值越高,說(shuō)明查詢低效
總結(jié)
以上是生活随笔為你收集整理的mysql整数索引没用到_MYSQL 索引无效和索引有效的详细介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SCI论文写作训练营笔记汇总02_英文科
- 下一篇: 【Pytorch神经网络理论篇】 21