繁体   English   中英

我应该使用哪个索引来混合WHERE和ORDER BY

[英]Which index should I use for mix WHERE and ORDER BY

我有以下查询

SELECT * FROM mytable WHERE toshow = 1 ORDER BY timestamp DESC

插入行时,时间戳列会将当前时间戳存储在数据库中。 在某些行中,“ toshow”值为0,在某些行中,其值为1

对于任何0或1,我应该使用什么INDEX来更快地显示结果,并显示上面的最新行

我为此创建了索引(timestamp, toshow) ,但是混淆了它的正确与否。

覆盖指数:

CREATE INDEX idx ON mytable(toshow, timestamp DESC);

您应该首先使用where部分作为最有选择性的部分,以便where子句可以轻松使用

 index (toshow, timestamp DESC ) 

timestamp列用于提供排序依据,但是这种情况发生在基于where子句对行进行筛选之后

通过这种方式,索引It既可以用来过滤行,又可以以您无法将索引用于位点的方式获得排序的格式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM