簡體   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