簡體   English   中英

在 MySQL 中選擇第 n 行的最佳查詢

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM