[英]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.