美文网首页
MySQL覆盖索引

MySQL覆盖索引

作者: 越努力越幸运阳 | 来源:发表于2020-12-21 10:01 被阅读0次

覆盖索引

1、当发起一个被索引覆盖的查询时,在explain的extra列可以看到using index的信息,此时就使用了覆盖索引

mysql> explain select store_id,film_id from inventory\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: inventory
   partitions: NULL
         type: index
possible_keys: NULL
          key: idx_store_id_film_id
      key_len: 3
          ref: NULL
         rows: 4581
     filtered: 100.00
        Extra: Using index
1 row in set, 1 warning (0.01 sec)

2、在大多数存储引擎中,覆盖索引只能覆盖那些只访问索引中部分列的查询。不过,可以进一步的进行优化,可以使用innodb的二级索引来覆盖查询。

例如:actor使用innodb存储引擎,并在last_name字段又二级索引,虽然该索引的列不包括主键actor_id,但也能够用于对actor_id做覆盖查询

mysql> explain select actor_id,last_name from actor where last_name='HOPPER'\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: actor
   partitions: NULL
         type: ref
possible_keys: idx_actor_last_name
          key: idx_actor_last_name
      key_len: 137
          ref: const
         rows: 2
     filtered: 100.00
        Extra: Using index
1 row in set, 1 warning (0.00 sec)

相关文章

  • 高性能的索引策略

    MySQL查询基础-查询执行过程 MySQL聚簇索引 MySQL覆盖索引 MySQL索引扫描排序 MySQL冗余和...

  • Mysql 相关

    MySQL索引 MySQL索引背后的数据结构及算法原理 覆盖索引和回表操作 MySQL性能优化 MySql表分区详...

  • MySQL覆盖索引

    MySQL覆盖索引 1.定义: 一个索引包含(或者覆盖)所有需要查询的字段

  • mysql覆盖索引

    见:https://my.oschina.net/loujinhe/blog/1528233

  • MYSQL覆盖索引

    如果一个索引包含(或覆盖)所有需要查询的字段的值,称为‘覆盖索引’。即只需扫描索引而无须回表。只扫描索引而无需回表...

  • MySQL 覆盖索引

    通常大家会根据查询的 where 条件来创建合适的索引,不过这只是索引优化的一个方面。设计优秀的索引应该考虑到整个...

  • MySQL覆盖索引

    一、覆盖索引覆盖索引(covering index)指一个查询语句的执行只用从索引中就能够取得,不必从数据表中读取...

  • MYSQL - 覆盖索引

    什么叫做覆盖索引? 解释一: 就是select的数据列只用从索引中就能够取得,不必从数据表中读取,换句话说查询列要...

  • mysql 覆盖索引

    一.前言 select * 和select 字段,经常遇到说不要用select *,因为效率慢,不能走索引什么什么...

  • MySQL覆盖索引

    覆盖索引 1、当发起一个被索引覆盖的查询时,在explain的extra列可以看到using index的信息,此...

网友评论

      本文标题:MySQL覆盖索引

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