开发者社区> 问答> 正文

如何在LIMIT子句中加快具有大偏移量的MySQL查询??mysql

使用大偏移LIMIT量的mysql 时出现性能问题SELECT:

SELECT * FROM table LIMIT m, n; 如果偏移m量大于1,000,000,则操作非常缓慢。

我必须使用limit m, n; 我不能使用类似的东西id > 1,000,000 limit n。

如何优化此语句以获得更好的性能?

展开
收起
保持可爱mmm 2020-05-17 17:12:22 664 0
1 条回答
写回答
取消 提交回答
  • 也许您可以创建一个索引表,该表提供与目标表中的键相关的顺序键。然后,您可以将此索引表连接到目标表,并使用where子句更有效地获取所需的行。

    #create table to store sequences CREATE TABLE seq ( seq_no int not null auto_increment, id int not null, primary key(seq_no), unique(id) );

    #create the sequence TRUNCATE seq; INSERT INTO seq (id) SELECT id FROM mytable ORDER BY id;

    #now get 1000 rows from offset 1000000 SELECT mytable.* FROM mytable INNER JOIN seq USING(id) WHERE seq.seq_no BETWEEN 1000000 AND 1000999;来源:stack overflow

    2020-05-17 17:19:05
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像