美文网首页工作生活
SQL优化之不能使用索引的典型案例及解决办法

SQL优化之不能使用索引的典型案例及解决办法

作者: onefiter | 来源:发表于2019-07-04 00:10 被阅读0次

第一种情况like的值为以%开头

mysql>  explain select * from actor where last_name like '%NI%'\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: actor
   partitions: NULL
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 200
     filtered: 11.11
        Extra: Using where
1 row in set, 1 warning (0.00 sec)

以%开头无法使用索引,推荐使用全文索引,
解决办法扫描二级索引获得满足条件的last_name like '%NI%'的主键actor_id,然后根据主键回表来检索记录,避开全表扫描产生的大量IO请求

mysql> explain select * from (select actor_id from actor where last_name like '%NI%')a,actor b where a.actor_id = b.actor_id\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: actor
   partitions: NULL
         type: index
possible_keys: PRIMARY
          key: idx_actor_last_name
      key_len: 137
          ref: NULL
         rows: 200
     filtered: 11.11
        Extra: Using where; Using index
*************************** 2. row ***************************
           id: 1
  select_type: SIMPLE
        table: b
   partitions: NULL
         type: eq_ref
possible_keys: PRIMARY
          key: PRIMARY
      key_len: 2
          ref: sakila.actor.actor_id
         rows: 1
     filtered: 100.00
        Extra: NULL
2 rows in set, 1 warning (0.00 sec)

相关文章

  • SQL优化之不能使用索引的典型案例及解决办法

    第一种情况like的值为以%开头 以%开头无法使用索引,推荐使用全文索引,解决办法扫描二级索引获得满足条件的las...

  • SQL 优化

    SQL 优化 负向查询不能使用索引 应该修改为: 前导模糊查询不能使用索引 如: 非前导则可以: 建议可以考虑使用...

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

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

  • SQL语句的优化

    sql语句的优化:多使用共享语句 尽量使你的sql语句能够使用索引。怎样使sql语句能够使用到索引呢:当sql语句...

  • MySQL优化----SQL语句和索引优化

    sql及索引优化 如何发现有问题的sql? 使用Mysql的慢查询日志对有效率问题的SQL进行监控 慢查询日志所包...

  • 常见的sql优化

    一些常见的SQL优化 负向条件查询不能使用索引 select * from order where status...

  • mysql优化案例

    SQL优化功能可以为您的慢SQL提供索引建议、检测因隐式转换,函数等表达式不能使用索引的情况。请大家参考以下几个例...

  • MYSQL explain执行计划解读

    Explain 查看SQL语句的执行计划:分析SQL执行计划,优化SQL及索引策略,run faster. ...

  • 数据库优化总结

    一、概述 二、优化方案详解 2.1、从数据库层面增强性能:优化SQL语句,合理使用字段索引,避免索引失效 SQL语...

  • sql优化的一般策略

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

网友评论

    本文标题:SQL优化之不能使用索引的典型案例及解决办法

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