没有合适的资源?快使用搜索试试~ 我知道了~
百万级数据库记录下的Mysql快速分页优化实例
1星 需积分: 49 8 下载量 34 浏览量
2018-05-15
09:40:18
上传
评论
收藏 264KB PDF 举报
温馨提示
试读
4页
百万级数据库记录下的Mysql快速分页优化实例 该文档提供了很多MySQL优化的实例 有必要看以下
资源推荐
资源详情
资源评论
首页软件开发数据库
百万级数据库记录下的 Mysql 快速分页优化实例
2011-04-12 08:26:59 作者:admin 来源: 浏览次数:193 网友评论 0 条
Mysql limit 分页慢的解决办法(Mysql limit 优化,百万至千万条记录实现快速分页)
MySql 性能到底能有多高?用了 php 半年多,真正如此深入的去思考这个问题还是从前天开始。有过痛
苦有过绝望,到现在充满信心!MySql 这个数据库绝对
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; 很快;基本上 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) l
imit 10;
这就是用了 id 做索引的结果。可是问题复杂那么一点点,就完了。看下面的语句
select id from collect where vtype=1 order by id limit 90000,10; 很慢,用了 8-9 秒!
到了这里我相信很多人会和我一样,有崩溃感觉!vtype 做了索引了啊?怎么会慢呢?vtype 做了索引是
不错,你直接 select id from collect where vtype=1 limit 1000,10; 是很快的,基本上 0.05 秒,可
是提高 90 倍,从 9 万开始,那就是 0.05*90=4.5 秒的速度了。和测试结果 8-9 秒到了一个数量级。从这
里开始有人提出了分表的思路,这个和 discuz 论坛是一样的思路。思路如下:
建一个索引表: t (id,title,vtype) 并设置成定长,然后做分页,分页出结果再到 collect 里面去找 i
资源评论
- 酒罢去2019-08-06假的,简直太假了
bthuntergg
- 粉丝: 2
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功