MySQL 百万级分页优化(Mysql千万级快速分页) 一般刚开始学SQLmysql分页怎么优化的时候,会这样写
代码如下:
SELECT * FROM table ORDER BY id LIMIT 1000, 10;
但在数据达到百万级的时候,这样写会慢死
代码如下:
SELECT * FROM table ORDER BY id LIMIT 1000000, 10;
也许耗费几十秒
网上很多优化的方法是这样的
代码如下:
SELECT * FROM table WHERE id = (SELECT id FROM table LIMIT 1000000, 1) LIMIT 10;
是的,速度提升到0.x秒了 , 看样子还行了
可是 , 还不是完美的!
以下这句才是完美的!
代码如下:
SELECT * FROM table WHERE id BETWEEN 1000000 AND 1000010;
比上面那句 , 还要再快5至10倍
另外,如果需要查询 id 不是连续的一段,最佳的方法就是先找出 id ,然后用 in 查询
代码如下:
SELECT * FROM table WHERE id IN(10000, 100000, 1000000...);
再分享一点
查询字段一较长字符串的时候,表设计时要为该字段多加一个字段,如,存储网址的字段
查询的时候,不要直接查询字符串,效率低下,应该查看该字串的crc32或md5
如何优化Mysql千万级快速分页
Limit 1,111 数据大了确实有些性能上的问题,而通过各种方法给用上where id = XX,这样用上索引的id号可能速度上快点儿 。By:jack
Mysql limit分页慢的解决办法(Mysql limit 优化 , 百万至千万条记录实现快速分页)
MySql 性能到底能有多高?用了php半年多,真正如此深入地去思考这个问题还是从前天开始 。有过痛苦有过绝望 , 到现在充满信心!MySql 这个数据库绝对是适合dba级的高手去玩的,一般做一点1万篇新闻的小型系统怎么写都可以,用xx框架可以实现快速开发 。可是数据量到了10万,百万至千 万,它的性能还能那么高吗?一点小小的失误,可能造成整个系统的改写,甚至更本系统无法正常运行!好了,不那么多废话了 。用事实说话 , 看例子:
数 据表 collect ( id, title ,info ,vtype) 就这4个字段,其中 title 用定长,info 用text, id 是逐渐,vtype是tinyint,vtype是索引 。这是一个基本的新闻系统的简单模型 。现在往里面填充数据,填充10万篇新闻 。
最后collect 为 10万条记录,数据库表占用硬盘1.6G 。OK ,看下面这条sql语句:
select id,title from collect limit 1000,10; 很快mysql分页怎么优化;基本上0.01秒就OK,再看下面的
select id,title from collect limit 90000,10; 从9万条开始分页,结果?
8-9秒完成,my god 哪出问题了????其实要优化这条数据,网上找得到答案 。看下面一条语句:
select id from collect order by id limit 90000,10; 很快,0.04秒就OK 。为什么?因为用了id主键做索引当然快 。网上的改法是:
select id,title from collect where id=(select id from collect order by id limit 90000,1) limit 10;
这就是用了id做索引的结果 。可是问题复杂那么一点点,就完了 。看下面的语句
select id from collect where vtype=1 order by id limit 90000,10; 很慢,用了8-9秒!
到 了这里我相信很多人会和我一样,有崩溃感觉!vtype 做了索引了?。吭趺椿崧兀縱type做了索引是不错,mysql分页怎么优化你直接 select id from collect where vtype=1 limit 1000,10; 是很快的,基本上0.05秒,可是提高90倍 , 从9万开始 , 那就是0.05*90=4.5秒的速度了 。和测试结果8-9秒到了一个数量级 。从这里开始有人 提出了分表的思路,这个和dis #cuz 论坛是一样的思路 。思路如下:
建一个索引表: t (id,title,vtype) 并设置成定长 , 然后做分页,分页出结果再到 collect 里面去找info。是否可行呢?实验下就知道了 。
推荐阅读
- 海思是什么cpu,海思是什么意思
- jquery关,jquery关闭页面事件
- 下载黑岩,下载黑岩小说免费阅读
- 小程序毕业设计方向,基于微信小程序的毕业设计难吗
- 签到系统java源代码 签到系统java源代码大全
- js点击展示列表,js点击li
- redis自己有定时清空,redis自动删除key的方法
- 关于华为服务器,华为服务器功能介绍
- mysql怎么改父键数据 mysql怎么更改主键