如何在LIMIT子句中加快具有大偏移量的MySQL查询??mysql-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

2020-05-17 17:12:22 349 1

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

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

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

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

取消 提交回答
全部回答(1)
  • 保持可爱mmm
    2020-05-17 17:19:05

    也许您可以创建一个索引表,该表提供与目标表中的键相关的顺序键。然后,您可以将此索引表连接到目标表,并使用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

    0 0
相关问答

1

回答

【RDS】RDS MySQL如何终止会话?

2022-01-12 16:17:02 447浏览量 回答数 1

1

回答

RDS MySQL如何终止会话?

2022-01-07 14:15:23 874浏览量 回答数 1

0

回答

RDS服务器到期,我之前的Mysql数据消失,能不能帮助找回一下数据库?

2018-04-03 23:14:46 2316浏览量 回答数 0

1

回答

怎么将ECS上的自建MySQL数据库迁移到RDS

2018-03-31 13:46:30 842浏览量 回答数 1

1

回答

RDS FOR MYSQL创建高权限账号之后如何在命令行中修改其他账号的密码

2018-03-23 02:10:29 732浏览量 回答数 1

1

回答

其他云mysql 迁入到阿里云rds

2018-03-23 22:55:55 774浏览量 回答数 1

1

回答

RDS for MySQL 5.7/5.6/5.5 主实例(本地SSD盘)

2018-03-21 22:44:39 693浏览量 回答数 1

1

回答

怎么在我新购的RDS mysql 没有数据库操作的入口

2018-03-13 15:09:46 563浏览量 回答数 1

1

回答

两个MYSQL的RDS之间,如何同步数据?

2018-03-11 07:50:39 2069浏览量 回答数 1

1

回答

在mysql的rds 上我们可以实时去解析binlog 吗

2018-03-02 03:11:26 1783浏览量 回答数 1
66
文章
12595
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载