我有以下查询
SELECT * FROM mytable WHERE toshow = 1 ORDER BY timestamp DESC
插入行时,时间戳列会将当前时间戳存储在数据库中。在某些行中,“ toshow”的值为0,在某些行中,其为1
对于任何0或1显示值和上面的最新行,我应该使用INDEX
来更快地获得结果
我为此创建了索引(timestamp, toshow)
,但混淆了它的权利。
答案 0 :(得分:0)
覆盖指数:
CREATE INDEX idx ON mytable(toshow, timestamp DESC);
答案 1 :(得分:0)
您应该首先使用where部分作为最有选择性的部分,以便where子句很容易使用
index (toshow, timestamp DESC )
timestamp列用于提供订单信息,但这是在根据where子句对行进行过滤之后发生的
这样索引 它既用于过滤行,又用于获取排序的格式 用您的方式,索引不能用于..