ITPub博客

首页 > 数据库 > MySQL > MySQL 8.0新特性-倒叙索引 desc index

MySQL 8.0新特性-倒叙索引 desc index

原创 MySQL 作者:哎呀我的天呐 时间:2020-04-12 15:49:43 0 删除 编辑

官方文档地址: https://dev.mysql.com/doc/refman/8.0/en/descending-indexes.html


Oracle使用desc index的场景很多,这里就不再赘述了,可喜可贺MySQL 8.0开始也有了倒叙索引,

使用倒叙索引后,就会避免filesort 操作,执行计划中会看到backward index scan关键字,译为中文就是倒叙索引范围查找

mysql>explain select * from test_backup.paralleltest order by id desc
+----+-------------+--------------+------------+-------+---------------+---------+---------+-----+------+----------+---------------------+
| id | select_type | table        | partitions | type  | possible_keys | key     | key_len | ref | rows | filtered | Extra               |
+----+-------------+--------------+------------+-------+---------------+---------+---------+-----+------+----------+---------------------+
| 1  | SIMPLE      | paralleltest |            | index |               | PRIMARY | 602     |     | 3000 |      100 | Backward index scan |
+----+-------------+--------------+------------+-------+---------------+---------+---------+-----+------+----------+---------------------+
返回行数:[1],耗时:8 ms.


·innodb只是适用于innodb存储引擎,并且受到以下限制:

  -如果索引包含一个降序键的列,或者主键包含一个降序的索引列,changebuffer不支持

  -innodb的sql解析器不使用降序索引


·降序索引和升序索引一样,支持所有的数据类型

·distinct可以使用降序索引

·降序索引支持btree,但是不支持hash索引

·降序索引不支持全文索引、空间索引·降序索引支持常规索引,和gernerated列(virtual\stored类型的列)

·对于有聚合函数调用,但是没有group by语句时,min()/max()查询优化不会使用带有降序键的索引进行优化

·降序索引的引入,MySQL 8.0再也不会对group by操作进行隐式排序


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29990276/viewspace-2685684/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
从事Oracle/MySQL工作多年,Oracle OCM、MySQL OCP,擅长Oracle/MySQL SQL Tuning & DB Performance

注册时间:2014-10-30

  • 博文量
    293
  • 访问量
    1942072