2020-02-27
创新互联是一家专注于成都做网站、成都网站设计、成都外贸网站建设与策划设计,乳山网站建设哪家好?创新互联做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:乳山等地区。乳山做网站价格咨询:13518219792
最近一个日志页面查询很慢,然后去跟踪了查询sql,发现日期字段上即使建了索引,查询还是很慢,执行语句还是使用了全表扫描,于是继续分析下去。
查询语句类似:
select * from logs where createtime = '2020-01-01' ;
起初因为date上没检索,查询执行的是全表扫描,给条件字段createtime建上索引:
再次执行:
查询执行的还是全表扫描:
网上查询有说是因为在查询数据条数约占总条数五分之一以下时能够使用到索引,但超过五分之一时,使用全表扫描。于是把日期范围缩小:
果真,查询执行的是range:
由此可知,在进行范围查询时,比如:、 、=、=等, 如果数据量过大的话,即使where条件字段已经建立了索引,查询语句执行时还是有可能进行全表扫描的。
实际上是不是全表的五分之一以下才会使用索引,这个不能确定,以后再研究了。
mysql不走索引5000条数据参考以下数据
一千万的条目在时间上建立非聚集索引,用了7分钟,半小时差不多。
索引跟类型关系很大,一般定长字段比变长字段简单,IO消耗小,时间节省,复合索引变长越多就越复杂,其次就是一表多索引,这种情况会衍生各种存储索引结构,就更费时间了。
mysql优化无索引查询:SQL CREATE TABLE test_tab (id INT,name VARCHAR(10),age INT,val VARCHAR(10)。
1、对查询进行优化,应尽量避免全表扫描,首先应考虑在where及order by涉及的列上建立索引。
2、应尽量避免在 where子句中使用!=或操作符,否则将引擎放弃使用索引而进行全表扫描。
3、应尽量避免在 where子句中对字段进行null值判断,否则将导致引擎放弃使用索引而进行全表扫描。
运行mysql安装文件:
按 Next,然后选择安装方式,有 "Typical(默认)"、"Complete(完全)"、"Custom(用户自定义)",选择第二个选项 "Custom",下一步, MySQL Server (mysql服务器), Developer Components (开发者部分), Debug Symbols (调试符号), Server data files (服务器数据文件) 默认。
改变安装路径;原路径是"C:\Program Files\MySQL\MySQL Server 5.5\",也可以修改为:"E:\Program Files\MySQL Server 5.5\"。
分享标题:mysql不走索引怎么办 mysql不走索引情况
文章来源:https://www.cdcxhl.com/article12/dddhggc.html
成都网站建设公司_创新互联,为您提供Google、网站设计公司、营销型网站建设、小程序开发、网站内链、手机网站建设
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联