在MySQL中选择第n行的最佳查询

问题描述 投票:0回答:1

我有一个巨大的表(> 10亿行),并且想选择第n行(例如,第1亿行),如果我使用此查询:

SELECT * FROM table ORDER BY indexed_column ASC LIMIT 1 OFFSET 100,000,000

结果还可以,但性能不好!因为此查询应扫描100,000,000行以选择第100万行,所以该表将在此过程中被锁定。

是否有任何最优查询在MySQL中选择第n行?

mysql query-performance
1个回答
0
投票

您可以将offset关键字替换为limit,并强制使用索引以获得更好的结果。

SELECT * FROM table FORCE INDEX (index_name) ORDER BY indexed_column ASC LIMIT 100000000, 1;

性能应该更好,但是您需要检查多少。

© www.soinside.com 2019 - 2024. All rights reserved.