博客
关于我
2020-06-05:索引不适用的条件
阅读量:298 次
发布时间:2019-03-01

本文共 771 字,大约阅读时间需要 2 分钟。

在数据库查询优化中,关于索引的使用仍然是一个值得深入探讨的话题。以下是一些需要注意的事项和优化建议。

首先,在索引列上使用函数会导致索引失效,这种情况需要特别注意。其次,最左前缀法则虽然在某些情况下非常有用,但并不是万能的。在处理索引列时,避免在索引列上执行不等式操作,这样可以有效减少索引失效的概率。对于Null和Not Null类型的字段,查询时需要特别注意,避免因为字段为Null而导致无法利用索引的情况。Like查询时,尽量避免在索引列上使用,否则会产生全表扫描的结果。

在实际应用中,索引的使用需要谨慎考虑以下因素:如果某个字段的唯一性极差,即使这个字段经常作为查询条件也不适合单独创建索引。对于频繁更新的字段,索引的效率会显著降低,因此不建议为这些字段创建索引。另外,如果某个字段在WHERE子句中很少被使用,给它创建索引也没有太大意义。最后,对于记录数量极少的表,索引的作用也会大打折扣。

关于SQL优化,福哥提出的"尽最不范覆 不囊来字哦"这几句话非常值得借鉴。具体来说,它强调了以下几点:尽量使用全值匹配的方式进行查询,遵循最佳左前缀法则。在使用索引时,避免在索引列上执行范围查询或不等式操作。对于覆盖索引的使用,要尽量多地进行,减少对索引的其他操作。对于不等式查询,除非非常必要,否则尽量避免使用。Null和Not Null类型的字段对查询性能有较大的影响,查询时要特别注意。Like查询时,尽量避免在索引列上使用,以免引发全表扫描。Character类型的字段在查询时需要用引号包裹,OR和UNION操作对于性能提升要比单独的OR语句更有效。

总的来说,数据库查询优化需要综合考虑多个因素,既要充分利用索引带来的查询性能优势,又要避免因为索引的使用而导致的额外负担。只有将这些因素结合起来,才能真正实现高效的数据库查询。

转载地址:http://pmmo.baihongyu.com/

你可能感兴趣的文章
Nginx的Rewrite正则表达式,匹配非某单词
查看>>
Nginx的使用总结(一)
查看>>
Nginx的使用总结(二)
查看>>
Nginx的可视化神器nginx-gui的下载配置和使用
查看>>
Nginx的是什么?干什么用的?
查看>>
Nginx访问控制_登陆权限的控制(http_auth_basic_module)
查看>>
nginx负载均衡器处理session共享的几种方法(转)
查看>>
nginx负载均衡的5种策略(转载)
查看>>
nginx负载均衡的五种算法
查看>>
Nginx运维与实战(二)-Https配置
查看>>
Nginx配置ssl实现https
查看>>
Nginx配置TCP代理指南
查看>>
Nginx配置——不记录指定文件类型日志
查看>>
Nginx配置代理解决本地html进行ajax请求接口跨域问题
查看>>
Nginx配置参数中文说明
查看>>
Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
查看>>
Nginx配置如何一键生成
查看>>
Nginx配置实例-负载均衡实例:平均访问多台服务器
查看>>
NHibernate学习[1]
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
查看>>