[英]Fastest way to SELECT through MySQL table records backwards from a certain row?
表格超過1800萬行:
SELECT * FROM tbl WHERE id > 10000000 LIMIT 30
花費了0.0724秒
SELECT * FROM tbl WHERE id < 10000000 ORDER BY id DESC LIMIT 30
花費0.0565秒
這是在MySQL中的特定行之前選擇特定數目的記錄的最快方法嗎?
看起來足夠好,但是MySQL是否不必在SELECT-ing 30行之前先對這1000萬行進行降序排序?
我問這是因為我不太確定我提出的這個查詢。 它看起來確實可以運行並且足夠快,但是查看語法語義,我不太確定。
MySQL是否足夠聰明,知道它不必訂購所有這1000萬行?
還是有更好的方法來實現這一目標?
它不會有在所有的行排序,如果你對一個索引id
柱(或有它作為主鍵的初始部分)。
它將僅使用該索引,給出已排序的數據,僅獲取前三十個元素。
是的,如果它不能有效地按排序順序檢索行,則可能必須先獲得批次然后再進行排序。 但這將是非常糟糕的DBMS設計。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.