美文网首页
SQL优化经验积累

SQL优化经验积累

作者: 一只弹窗仔 | 来源:发表于2020-05-09 12:01 被阅读0次

1.条件字段选择性弱时不走索引
原因: mysql在条件字段选择性弱,查出的结果集较大,不走索引;
比如,一张表内有1W条数据,某个字段为0的数据有9999条,为1的只有1条。这是sql筛选条件查询这个字段为0的数据,此时sql不会走索引。原因是9999条数据相比于1W条数据近乎于全表扫描,如果走索引效率反而不如全表扫描高。
解决办法 尽量避免条件字段选择性弱的查询,如果多个条件中的某个条件是这种情况且不得不用时,也不影响,比如查询某些条件下未删除的数据,且这张表内被删除数据非常少时。不用强求走索引。
往来单位查询时:根据来源字段建索引,1W条数据时,客户档案来源9K,其他来源1K,用客户档案的值当来源值查询时,不走索引
2.隐式转换
字段值是字符型,入参值非字符型,会进行隐式转换,查询慢,使用concat函数转成字符型
3.like查询索引失效
全模糊和左模糊不走索引,右模糊走索引。当左模糊时使用方向索引
a.like %code 索引失效,使用全表扫描。但可以通过翻转函数+like前模糊查询+建立翻转函数索引=走翻转函数索引,不走全表扫描。如where reverse(code) like reverse('%code')
b.like code% 索引有效。
c.like %code% 索引失效,也无法使用反向索引。

全模糊使用like,索引失效,如果可能可以使用覆盖索引。无法使用覆盖索引时,可以使用函数locate,position等,字段是否包含某字符。大数据量情况下,查询性能locate>position>like

相关文章

  • SQL优化经验积累

    1.条件字段选择性弱时不走索引原因: mysql在条件字段选择性弱,查出的结果集较大,不走索引;比如,一张表内有1...

  • SQLServer性能分析及优化

    公司使用SQLServer作为数据库,工作中积累了很多SQL性能优化经验,为了自己查询和记忆方便,我的分类方式主要...

  • SQL优化经验

    字段属性长度合适(不要太长)类型合理(看谁更符合实际)3.尽量设置not null(查询的时候少比较些) 合理使用...

  • 常用sql优化2019-09-27

    sql优化 sql优化.................................................

  • MySQL 优化实战 - 索引篇

    关于SQL优化,这个问题,相信大家过多过少都有过一些了解。最近我也在研究SQL优化方面的东西,分享一些经验。 首先...

  • mysql数据库优化

    1. Mysql优化介绍 1.1 sql优化 a. sql优化分析b. 索引优化c. 常用sql优化d. 常用优化...

  • SparkSQL优化器Catalyst

    SQL优化器执行策略:规则优化和代价优化规则优化是经验式,需要对数据元数据信息充分了解,主要体现在Join;代价优...

  • Mysql 优化

    1.Sql优化 1)sql优化分析2)索引优化3)sql语句优化4)一些常用的技巧优化 (正则、函数) 2.优化数...

  • SQL 优化的几点经验

    结合阿里阿里巴巴Java开发手册,结合自己的经验,对于sql优化有下面几点体会 在应用系统开发初期,由于开发数据库...

  • SQL优化经验总结

    最近在学习SQl优化方面的知识内容,以下做一个总结!!! 1、表连接中选择最有效率的表作为基础表 Oracle...

网友评论

      本文标题:SQL优化经验积累

      本文链接:https://www.haomeiwen.com/subject/vftknhtx.html