gpt4 book ai didi

mysql - 如何优化 MySQL ORDER BY + 巨大的 LIMIT Offsets

转载 作者:行者123 更新时间:2023-11-29 01:17:51 26 4
gpt4 key购买 nike

表:

CREATE TABLE `test` (
`uid` int(11) unsigned NOT NULL AUTO_INCREMENT,
`rating` smallint(5) unsigned NOT NULL DEFAULT '100',
PRIMARY KEY (`uid`),
KEY `rating` (`rating`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

此查询运行得足够快(0.015 秒):

SELECT uid FROM test ORDER BY rating DESC LIMIT 0,100

但是由于 LIMIT 偏移量很大,它运行起来非常慢(2.215 秒):

SELECT uid FROM test ORDER BY rating DESC LIMIT 10000,100

我怎样才能摆脱巨大的 LIMIT 偏移量?!

最佳答案

LIMIT 10000, 100 MySQL 必须扫描 10100 条记录。如果你能记住你在 window 上的位置,可能会更好:

SELECT uid
FROM test
WHERE rating > :last_rating
ORDER BY rating DESC LIMIT 0,100

在这种情况下:last_rating 是上一个查询的最后一个评级。

关于mysql - 如何优化 MySQL ORDER BY + 巨大的 LIMIT Offsets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10459328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com