[英]Optimal query to select nth row in MySQL
我有一個巨大的表(> 10 億行)並且想要選擇第 n 行(例如第 100 百萬行),如果我使用這個查詢:
SELECT * FROM table ORDER BY indexed_column ASC LIMIT 1 OFFSET 100,000,000
,
結果還可以,但性能不行! 因為此查詢要掃描 100,000,000 行以選擇第 100 百萬行,並且在此過程中表將被鎖定。
是否有任何最佳查詢來選擇 MySQL 中的第 n 行?
您可以將偏移關鍵字替換為限制,並強制使用索引以獲得更好的結果。
SELECT * FROM table FORCE INDEX (index_name) ORDER BY indexed_column ASC LIMIT 100000000, 1;
性能應該更好,但你需要檢查多少。
我假設您必須從table
選擇所有字段。 如果錯誤,請嘗試僅選擇您需要的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.