垂直分库分析

Innoadb引擎存储数据

Row---->Page (16kb). ---->分区extent. ---->压缩分区segment
数据分散到不同page,意味着更多的磁盘io 和解压缩数据,性能低

在这里插入图片描述

通过将重要字段单独剥离出一张小表,让每一页能够容纳更多的行,进而缩小数据扫描的范围,达到提高执行效率的目的。

举例:假设1亿条数据

  • 不做垂直切分,1K大小的行需要625万页
  • 做了垂直切分,小表64字节行,存储小表需要39万页

每一个page 大小16kb,单行大小过大,数据会分散到多个page,需要更多磁盘io
减少单行字段即减小单行数据量,更多行记录的数据都集中到一个page,搜索时数据集中

垂直拆分原则:

  • 单表数据量未来可能千万
  • 字段超过20个,且包含了超长的Varchar,CLOB BLOB等字段

具体实践

  • 不拆分:数据查询、排序时需要的字段,如分类编号、商户id.品牌编号、逻辑删除标志位等
    高频访问的小字段,如商品名称、子标题、价格、厂商基本等

  • 拆分字段:低频访问字段:配送信息、售后声明、最后更新时间等大字段:商品图文详情、图片BLOB,JSON元数据等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值