首页 / MYSQL / mysql下limit分页优化思路
mysql下limit分页优化思路
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql下limit分页优化思路,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2016字,纯文字阅读大概需要3分钟。
内容图文
![mysql下limit分页优化思路](/upload/InfoBanner/zyjiaocheng/870/f2851c50c85a4b339ebc35660452326b.jpg)
mysql的分页查询是开发人员工作经常会遇到的问题,这里稍写几种简单优化方法。
#表结构 MySQL [test]> show create table house\G; *************************** 1. row *************************** Table: house Create Table: CREATE TABLE `house_backup` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(200) COLLATE utf8mb4_bin NOT NULL DEFAULT '', `address` varchar(500) COLLATE utf8mb4_bin DEFAULT '', `area` varchar(100) COLLATE utf8mb4_bin DEFAULT '', `aspect` varchar(10) COLLATE utf8mb4_bin DEFAULT '', `house_type` varchar(20) COLLATE utf8mb4_bin NOT NULL DEFAULT '', `price` varchar(10) COLLATE utf8mb4_bin DEFAULT '', `add_time` int(11) unsigned DEFAULT '0', `test_column` varchar(12) COLLATE utf8mb4_bin NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2379248 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin 1 row in set (0.00 sec) ERROR: No query specified #总数 MySQL [test]> select count(1) from house; +----------+ | count(1) | +----------+ | 1456960 | +----------+ 1 row in set (0.45 sec) #初始位置查询 MySQL [test]> select id,title from house_backup limit 10\G; #查询的数据忽略 10 rows in set (0.00 sec) ERROR: No query specified #10w的偏移量查询 MySQL [test]> select id,title from house limit 100000,10\G; #查询的数据忽略 10 rows in set (0.03 sec) ERROR: No query specified #100w的偏移量查询 MySQL [test]> select id,title from house limit 1000000,10\G; #查询数据忽略 10 rows in set (0.37 sec) ERROR: No query specified #随着偏移量增大,查询越来越耗时
这里用100w偏移量分页sql做优化
一. 使用 IN 关键字
#这里先查询id,再用in关键字查询,正常情况id是主键索引,效率很高,如果是其他字段需要先创建索引(查询id的sql不做打印) MySQL [test]> select id,title from house_backup where id in (1000001,1000002,10000003,1000004,1000005,1000006,1000007,1000008,1000009,1000020)\G; #查询数据忽略
Empty set (0.00 sec) ERROR: No query specified
二. 使用 BETWEEN ... AND ...
MySQL [test]> select id,title from house_backup where id between 2172904 and 2172913; #查询数据忽略 11 rows in set (0.00 sec)
上面两种查询均需要保证id是有序。
内容总结
以上是互联网集市为您收集整理的mysql下limit分页优化思路全部内容,希望文章能够帮你解决mysql下limit分页优化思路所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。