美文网首页
SQL优化-index_merge

SQL优化-index_merge

作者: 程序员阿奇 | 来源:发表于2022-03-11 14:52 被阅读0次
image.png

该执行计划是线上一个查询语句(select count(*) from table WHERE note_type = 1 and subject_code = 'register' and is_used = 1 and create_time like '2022-03-10%' )
三个字短分别建立了索引
根据查询计划显示可以知道进行了索引合并,于是分别把三个索引删除,创建了一个联合索引顺序为: (note_type,subject_code,is_used)。索引创建好后 查看执行计划 索引的合并问题解决了,但是扫描的行数反更多了,但是依然走了索引。为什么会这样呢?

经过对数据的分析发现这三个字短的区分度不是很高 所以扫描了大部分数据,但是依然走了索引。
既然已经知道了原因,那也就好解决了,现按照日期进行查询 在按照其他条件查询,把创建的联合索引删除,然后重新创建(create_time,note_type,subject_code,is_used)按照这个顺序创建好,再次执行以上SQL:
select count() from table WHERE create_time like '2022-03-10%' and note_type = 1 and subject_code = 'register' and is_used = 1.
查看执行计划:发现扫描的行数变少了,但是 执行计划的索引类型:是index 说明效率还不是很高,继续优化
那怎么优化呢?
经过分析和测试发现 是 like 模糊查询导致 ,但是依然走了索引 只是这种效率不高。然后把模糊查询 改为范围查询: select count(
) from table WHERE create_time bteween '2022-03-10' and '2022-03-10 23:59:59' and note_type = 1 and subject_code = 'register' and is_used = 1. 查看执行计划发现 确实生效了 执行计划的 索引类型index->range 这下效率提高了。

相关文章

  • SQL优化-index_merge

    该执行计划是线上一个查询语句(select count(*) from table WHERE note_type...

  • 常用sql优化2019-09-27

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

  • mysql数据库优化

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

  • Mysql 优化

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

  • sql优化的一般策略

    sql 优化的一般策略:索引优化,sql改写,参数优化,优化器 索引优化 以select * from vvsho...

  • SQL语句优化, since 2022-04-22

    (2022.04.22 Fri)SQL语句的优化目的在于提高SQL语句的运行效率。注意SQL优化和数据库优化的区别...

  • 11-mysqlSQL分析

    六星教育 - java-mysql优化1909 SQL优化 所谓SQL优化:基于MySQL的优化器查询规则来优化S...

  • MySQl优化学习笔记(七)SQL优化简介

    一、SQL优化简介 1、我们平时说的SQL优化就是优化SQl语句和索引(通俗说就是使用什么样的SQL语句能够让索引...

  • 实战001-提煤单明细查询

    一、code 二、优化代码 2.1、优化在循环中发SQL 优化后代码 二、SQL 二、使用 Profile 分析 ...

  • MySQL优化策略

    1、 sql优化 1.1 SQL 语句简化,简化是 SQL 优化的一大利器,因为简单,所以优越。 1.2 尽可...

网友评论

      本文标题:SQL优化-index_merge

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