SQL分页过多时, 如何优化?

发布于 2022-09-07 15:36:08 字数 65 浏览 17 评论 0

SQL分页过多时(例如 limit 1000000, 20), 效率会明显降低下, 如何优化? 这里以mysql为例

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梦里梦着梦中梦 2022-09-14 15:36:08

SELECT * FROM product WHERE ID > =(select id from product limit 1000000, 1) limit 20 ;

如何视而不见 2022-09-14 15:36:08

SELECT * FROM product WHERE ID > = (select id from product limit 1000000, 1) limit 20 ;

荆棘i 2022-09-14 15:36:08

我这里有一个解决方案。这是以前看资料学习到的,具体在哪里忘记了,如果有更好的想法,可以交流一下。
创建一个索引表,它提供了与目标表中的键相关的顺序关系, 可以将此索引表连接到目标表,并使用where子句更高效地获取所需的行。

CREATE TABLE test (
   test_no int not null auto_increment,
   id int not null,
   primary key(test_no),
   unique(id)
);

TRUNCATE test;
INSERT INTO test (id) SELECT id FROM mytable ORDER BY id;

SELECT mytable.* 
FROM mytable 
INNER JOIN seq USING(id)
WHERE test.test_no BETWEEN 1000000 AND 1000020;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文