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

mysql分表真得能提升查询性能吗

发布网友 发布时间:2022-10-18 09:46

我来回答

1个回答

热心网友 时间:2023-11-11 18:21

首先将存储引擎限定在innodb

如果将不同的表分到多个库多个机器上,那一定是能提升性能的,毕竟你花钱买机器了,总的可用CPU和内存高了。这种情况不必考虑。

如果所有分表都在同库同机器上,每个表的查询都共用CPU和内存,性能是怎么提升的?

例如这条查询 select * from user_feeds where uid = ? ,且uid字段上有二级索引,查询步骤为:

通过以上步骤可以看出,查询的主要成本为:确定索引扫描范围的IO次数(最大为4)、遍历扫描范围内索引数据的CPU占用(与扫描范围内记录数成正比)、回表IO次数(与扫描范围内记录数成正比,且受聚簇索引B+树层数影响)。所以查询的成本主要取决于uid=X对应的记录数量和索引B+树的层数。

来看一下分表后的查询成本:

可见分表后主要的差别在于确定索引扫描范围的IO次数和回表IO次数,即分表后B+树的层数变化,变化范围为0到3。对于不需要回表的查询,差别在于用到的索引B+树层数变化导致的确定扫描范围的IO次数变化;对于需要回表的查询,除了确定扫描范围的IO次数变化,还有回表IO次数变化(回表IO次数变化=记录数X聚簇索引B+树层数变化)。

以上是有二级索引的情况,如果没有索引,需要全表扫描时,扫描整个聚簇索引的成本:加载数据页到内存的IO次数(聚簇索引的页面数)、扫描记录的CPU占用(整个聚簇索引的记录数量)。分表以后所有表总的记录数量不变,页面数量也可以认为不变。所以全表扫描的查询性能分表与不分表也不会有什么差别。

垂直分表,表记录数不会改变,每条记录数据占用空间会变小,从而导致单表聚簇索引每个数据页可以存储的记录变多,聚簇索引的数据页数量变少,原来uid=X的记录可能分布在N个数据页上,分表后uid=X的记录分布在的数据页数量<=N。也就是减少回表IO的次数。

但是,这种情况只限于合理的垂直分表,也就是select的列可以落在同一张表中。

索引列:uid、created_at
单条记录大小 uid4字节、created_at4字节、主键post_id8字节,页号6字节 共22字节
单页可以存放的记录数 16kb(16384)/22 = 744,去除掉一些其他信息(header、槽信息),再去除一些碎片(删除造成的、没填满造成的),姑且认为每页存放500条记录

如果总的记录条数为5000w,那么需要的叶子节点数量为 5000w/500 = 10w,B+树需要两层(500X500 = 25w)
索引叶子节点占用空间大小为 10wX16kb = 1.6GB
索引目录节点占用空间大小为 500X16kb = 8M

单条记录大小 24
单页可以存放的记录数 682

与理论估算相近

索引空间大小19.38GB,生产环境二级索引数量16个,平均每个索引空间大小约1.1GB,比理论估算还小一些。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
挖掘机上的字母标志是什么牌子的挖机 中国市场上挖掘机那国技术占优 微信个人标签经典短句最精辟的微信个性签名 肚子总是不消化,吃完东西不想上厕所。涨涨的 最近老是肚子疼,但疼一会儿就不疼了,就是不想上厕所,有时候五六天都没... ...但是不疼几乎每天早上都会不舒服,也不想上厕所,就是弄的你睡不着觉... 我的肚子老疼,但不是很想上厕所,最近有点拉肚子,可是一吃凉的东西肚子... 因为节目结缘却最终分开,姚沐希彭措的分手,暗示了娱乐圈什么问题? x79支持什么显卡 四叶草是不是三叶草? 堆表、回表、索引覆盖、主键索引、聚集索引等一些知识点 回表查询与索引覆盖 阿里三面:MySQL回表的性能伤害有多大? “重”字粤语有三声,那么国之重器的重读什么声?1重量,2重叠,3稳重,与那个同音? 同音字组词:虫重 崇有哪些同音字 重西的同音字 重同音字 对于Java中包的运用以及路径还是有几点不明白,我用的DOC 窗口+notepad做的练习,书上这块也讲的少 java工程里头直接建的包路径和在src下建的包路径有什么区别 java包路径的问题 什么情况下用“票据制单”生成凭证 春山如黛草如烟是爱过吗 我自己是开了好几家公司,比较有钱,手上有两千多万吧,而且我也偶尔帮助一下穷人,可是 Windows 10 深度美化有什么技巧 佛教哲理的句子 绿萝吊兰怎么养 绿萝吊兰养植方法 熊猫TV更换视频清晰度 火灾逃生的自救方法 冬天五针松室外移栽能活吗 java 读取资源文件为什么就是读不到呢?再根目录下啊,真是不解,求解答,30分,谢谢,下图 梦想七年级作文 新奔驰GLA申报图曝光,将配1.3T动力,表现不输1.6T! 环保出行之选 五款豪华入门绿牌车 亲们,那个酒精能洗瓷砖上的水锈么, 一道初三化学题:“酒精能洗去瓷砖上的水锈”的说法为什么是错的? 要一个QQ卡卡号和密码要有钱的急!!! 我QQ号被盗了怎么办啊,密保手机号和密码也被换了,账号价值10000 专门用来打游戏的号_百度问一问 格子连衣裙可以怎么搭配 有哪些赏叶植物是抗冻的,最低气温多少 Cf爆破开始的英文好像有个Ok什么的,求告诉 请问CF爆破模式每局刚开说的那些英文是什么意思? CF所有模式的任务开始和结束的英文。还有杀敌的英文是什么啊?要全的~ 爆破的英文意思是什么? 不要CF爆破模式的意思。只要爆破两个字的英文意思! 穿越火线爆破模式中胜利时说的英语是什么?要完整的 ipadmini5?两千出头性价比最高的平板? 还有哪些植物能战胜风雪 我用的是尼康D90相机,请问可不可以设置拍摄照片的尺寸啊,谢谢! 家里4平方主线可以带3台15匹变频空调吗? 合约期内绑定的手机号必须在这个手机上用么?