看 TiDB Best Practice 无意中看见里面提到逆序索引
不知道这个逆序索引慢具体指什么?
比如一个表
CREATE TABLE `test` (
`id` bigint(20) NOT NULL,
`ctime` int(10) UNSIGNED NOT NULL DEFAULT '1363033208',
PRIMARY KEY (`id`),
Key `ctime` (`ctime`)
) ENGINE=InnoDB ;
在 ctime 上有索引。
那么下面两个语句的查询时间会因为上面说的逆序索引有差异吗?
select id from test where ctime < 1590650228 order by ctime desc
select id from test where ctime < 1590650228 order by ctime asc
那假如只用逆序有什么办法解决?创建索引时指定 DESC ?
创建了一个 DESC 的索引,但是 show create table 和 show index 都看不出按什么排序
yilong
(yi888long)
6
原理这边暂时没有找到专门的说明,您可以参考这篇文章来了解下,多谢,
优化需求您可以帮忙反馈到这里
HACK
(DBS)
7
这个不支持,在官方文档有说明吗?还真不知道有这个问题。
我在这个文档中,看到是支持逆序的呀:
https://docs.pingcap.com/zh/tidb/v4.0/tidb-best-practices
逆序索引
目前 TiDB 支持对索引进行逆序 Scan,目前速度比顺序 Scan 慢一些,通常情况下慢 20%,在数据频繁修改造成版本较多的情况下,会慢的更多。如果可能,建议避免对索引的逆序 Scan。