问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysql 单表100万 算什么水平

发布网友 发布时间:2022-05-01 02:07

我来回答

2个回答

懂视网 时间:2022-05-01 06:28

查询结果:

技术分享

从上图中我们可以看到表的基本信息:

表行数:866633
平均每行的数据长度:5133字节
单表大小:4448700632字节

关于行和表大小的单位都是字节,我们经过计算可以知道
平均行长度:大约5k
单表总大小:4.1g
表中字段各种类型都有varchar、datetime、text等,id字段为主键

测试实验

1.   直接用limit start, count分页语句, 也是我程序中用的方法:

select * from product limit start, count
当起始页较小时,查询没有性能问题,我们分别看下从10, 100, 1000, 10000开始分页的执行时间(每页取20条), 如下:

select * from product limit 10, 20   0.016秒
select * from product limit 100, 20   0.016秒
select * from product limit 1000, 20   0.047秒
select * from product limit 10000, 20   0.094秒

我们已经看出随着起始记录的增加,时间也随着增大, 这说明分页语句limit跟起始页码是有很大关系的,那么我们把起始记录改为40w看下(也就是记录的一般左右)                                    select * from product limit 400000, 20   3.229秒

再看我们取最后一页记录的时间
select * from product limit 866613, 20   37.44秒

难怪搜索引擎抓取我们页面的时候经常会报超时,像这种分页最大的页码页显然这种时
间是无法忍受的。

从中我们也能总结出两件事情:
1)limit语句的查询时间与起始记录的位置成正比
2)MySQL的limit语句是很方便,但是对记录很多的表并不适合直接使用。

2.   对limit分页问题的性能优化方法

利用表的覆盖索引来加速分页查询
我们都知道,利用了索引查询的语句中如果只包含了那个索引列(覆盖索引),那么这种情况会查询很快。

因为利用索引查找有优化算法,且数据就在查询索引上面,不用再去找相关的数据地址了,这样节省了很多时间。另外Mysql中也有相关的索引缓存,在并发高的时候利用缓存就效果更好了。

在我们的例子中,我们知道id字段是主键,自然就包含了默认的主键索引。现在让我们看看利用覆盖索引的查询效果如何:

这次我们之间查询最后一页的数据(利用覆盖索引,只包含id列),如下:
select id from product limit 866613, 20 0.2秒
相对于查询了所有列的37.44秒,提升了大概100多倍的速度

那么如果我们也要查询所有列,有两种方法,一种是id>=的形式,另一种就是利用join,看下实际情况:

SELECT * FROM product WHERE ID > =(select id from product limit 866613, 1) limit 20
查询时间为0.2秒,简直是一个质的飞跃啊,哈哈

另一种写法
SELECT * FROM product a JOIN (select id from product limit 866613, 20) b ON a.ID = b.id
查询时间也很短,赞!

其实两者用的都是一个原理嘛,所以效果也差不多

MySQL单表百万数据记录分页性能优化

标签:

热心网友 时间:2022-05-01 03:36

mysql数据库,一张百万级别的大表,一般来说是很快的,但需要进行优化。同时,mysql在数据量大的情况下分页起点越大查询速度越慢,100万条起的查询速度已经需要7秒钟。
MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属于Oracle旗下产品,是最流行的关系型数据库管理系统之一。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言,由于其体积小、速度快、开放源码等特点,一般中小型网站的开发都选择MySQL作为网站数据库。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
工科考研50分数学能过国家线吗 数一工科国家线一般多少分 笔记本电脑无线连接epson爱普生打印机wifi怎么连接 爱普生如何无线连接 身份证注销了银行卡还可以用吗 8424西瓜是哪里产的? 一个人开两个支付宝是同一个二维码吗 买个衣服很生气,投诉无门, 拉夏贝尔衣服可以退吗 断桥铝门窗有多少种 摩凡陀0607115手表使用说明 请问一下大家、我有一块摩凡陀手表、停走了修理的话大概多少钱?急急 我的手表不动了,刚买了两年,是摩凡陀的手表,请问是电池问题吗? 摩凡陀手表走走停停什么原因............... 教师节20字祝福语 教师节20字祝福语? 20字内的教师节祝福语有哪些 王者账号实名认证被他人恶意绑定导致无法进行人脸识别怎么办 人脸识别被别人绑定我想改+但显示要求在游戏再识别一次 人脸识别绑定的是别人的,父母的腾讯成长守护平台上能看到自己的充值记录吗 当我和世界不一样是这首歌的歌词,这是什么歌曲? 屌丝男士里柳岩的手机壳有卖的吗 银行承兑汇票的保证金还以用来做质押贷款吗? 请问现在银行可以做银行承兑汇票质押贷款吗? 用承兑汇票抵押可以马上贷款吗? 请问广州哪里有专业的思科cisco认证考试的??是不是随时都可以考的? 种摇钱树什么时候秸果 用什么蜡可以去除车门上的轻微划痕? 360浏览器如何设置让其打开时显示比例都是150%?不要每次都自己调整? 怎样去除木地板上的灰尘 眉山实验高级中学录取分数线 四川省眉山市仁寿县一中录取分数线是多少 眉山中考眉中,眉一中,仁寿一中,外国语的分数线以及得分率 成都市的户口在眉山读高中分数线是不是要高些 仁寿中学录取分数线2020年? 天涯明月刀卡顿问题 玩天涯明月刀怎么会卡?我的是GeForceTGX850的显卡。求大神 天涯明月刀总是会卡是什么原因? 为什么我的电脑玩天涯明月刀走起来一卡一卡的感觉不顺畅? 天涯明月刀掉帧严重怎么办 天涯明月刀掉帧卡顿解决方法 《天涯明月刀》高配电脑卡顿怎么办 天涯明月刀副本通过江南车夫返回本门打坐怎么卡图里了 天涯明月刀卡顿怎么办啊 平时都很流畅 突然会卡一下 就好像按了截图键... 工业上用三氧化二锑(Sb2O3)可生产一种重要的阻燃剂.其中Sb元素的化合价是(  )A.+2B.+3C.-2D.- 天涯明月刀很卡 玩天涯明月刀,画面到流畅,就是有时会卡,然后任务管理器就这样了,是什么... 常用化合价是多少??? 天涯明月刀玩一阵就特别卡 联想y50-70玩天涯明月刀为什么会卡? 淘宝注销后为什么用户名还在