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

为何分表后mysql效率会更低?

发布网友 发布时间:2022-04-24 15:07

我来回答

1个回答

热心网友 时间:2022-04-10 00:08

我们在上面分别进行了分表和不分表的性能测试,只有一个表,和把这个表拆为32个的情况,两种情况都为innoDB,表内有text字段。padding数据为2亿,做了25个进程的每个进程20W的操作。我们发现如果仅有select,update的时候,分表的情况比不分表的情况快10%,insert的情况就差太远了:分表比不分表慢20%多。可以确定的是,select,update后的where子句有索引,都为单条的查询和更新,insert也只是插入一条。如果查看机器负载,发现不分表,CPU12%~20%和磁盘busy不是100%。分表后磁盘busy100%,而CPU15%~25%。我觉得很郁闷,不是一般来说,分表应该效率更高吗?还是说innoDB已经优化的很好了?我的猜想是:innoDB是行级锁的,所以select,update,insert不会锁住其他的进程,所以效率提升不大。如果你业务上只对单一record操作, 你也没有必要分表了。但是,这肯定不是实际情况, 实际情况是你有很多批量的update, 很多select。 可能有很多select会和update,insert争抢table锁。把这些情况都考虑进去, 加一些查询。 相信分表的优势立马就有了。 明白了,我的实际情况是根本没有证锁的情况,看来没必要了……问题补充:<div class="quote_title">polymorph 写道</div><div class="quote_div">这种压力测试如果脱离开具体的业务意义就不大了。 <br /> <br />就比如一个查询,可能一下查询出1万条记录。这种查询很正常,也很普遍。但是,当系统真正上线以后,有可能出现一下子插入1万条记录的情况吗?所以查询出1万条的查询,速度的提高对系统的性能是很有帮助的,而插入1万条记录速度的降低未必会很大的影响系统的性能。 <br /> <br />再比如数据仓库中的高耦合度,要是论插入的速度,那简直惨目人睹。但是这相当于将时间的消耗平坦到每一次的插入里面了。当你要查询时,会非常快的查询出结果。 <br /> <br />像你现在这个数据量级的话,说句实话,还用MYSQL真是一种冒险。排除这个,将表分开是正确的。当系统真正运行起来,插入时资源消耗的增加不会对系统增加多大压力,但是会极大的降低查询时对系统的压力,而这部分压力,才是属于能让系统DOWN掉的那部分。 <br /> <br />系统资源就是这样,用20%的资源做80%的事情,用剩下的80%的资源做20%的事情。插入就是那80%的事情里面的。就让那20%的消耗增加为25%吧,你会发现那80%的消耗可能一下子就减了一半。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果手机微信怎么换漂亮字体(苹果手机微信怎么换行输入) 有什么好用的app转换字体 手写转文字的软件 erp可以看评论地址吗 淘宝评论url是什么意思? 揭秘:码牌支付风控升级,背后真相揭秘 电脑电视直播软件哪个好用什么软件好电脑看电视直播 潼南子同街学区是哪些 三极管BU406价格和参数? 火锅料放在冰柜忘了插电一个星期给会坏了吗 火锅的设备有哪些 Mysql分表和分区的区别,分库和分表区别 HACCP的最新审核依据? haccp七大原理是什么? 请问飞机的机翼有什么用?详细介绍 Haccp体系是什么? 飞机的机翼有什么作用? haccp是怎么回事? HACCP的七个原理是什么? HACCP是什么意思? 这买了蔬菜放冰箱里用塑料袋包着还是敞着更好 买的菜放在冰箱里,需要套个袋子么? vivou1退出不了简易桌面 vivo y83怎样设置极简模式 冰箱保鲜室蔬菜保存时用不用装袋 菜叶洗干净了直接放入保鲜袋里扎紧后能直接放入冰箱里吗? 如何开启VIVO y51的极简模式(老年模式)? vivos10pro简易模式 蔬菜放在冰箱怎么存储,用塑料袋密封吗 把水果蔬菜放保鲜袋里 保鲜袋子需要敞开个口吗 还是全封闭? vivos7如何关闭极简模式? 分表和分区表的区别和选择 分库分表之后,id 主键如何处理? 数据库分表后如何查询数据? mysql分表,分区的区别和联系 mysql分表的3种方法一,先说一下为什么要分表 分表和分区有什么区别 mysql分表后如何确定查询数据在哪个表中 mysql分表之后怎样按照字段名查询数据 T450s如何设置U盘启动 家里装分表要申请吗? 装机大师制作好启动盘了,ThinkPad T450笔记本要怎么U盘重装系统win10? 数据库为什么要分库分表,数据库分库分表 thinkpad t450装系统(有U盘且没问题),按f12后选择U盘启动后又返回了这个界面,如图 联想笔记本电脑t450光盘启动 t450s用u盘恢复w8后开机启动不了 求大神告知T450用U盘装系统怎么进bios t450加固态硬盘装系统怎么重装系统 新买的t450s不能正常开机,必选复位孔才能开机,求助 thinkpad T450如何使用U盘重装系统 thinkpadT450怎么进入bios