为什么大厂要做数据垂直分表-【IT老齐003】为什么大厂要做数据垂直分表?

AID:
CID:
视频图片:
作者头像:
弹幕地址:
视频描述:

热门回复:

  • 喊我回去背单词:省流助手003:为什么大厂做垂直分表? 一张表的字段太多需要做垂直分表。 什么是水平分表? 以行为单位对数据进行拆分(范围法,hash法)。特点:所有的表结构完全相同。用于解决数据量大的存储问题。 什么是垂直分表? 将表按列拆分成2张以上的小表,通过主外键关联获取数据。 为什么要这么做? 需要了解mysql的InnoDB处理引擎。 行数据称为:row 管理数据基本单位称为页:page;每一页的默认大小:16k 保存页的单位称为区:Extent。 关系:区由连续页组成,页由连续行组成。1024/16=64(即:一个1M的区有64个页) InnoDB1.0后新特性,压缩页。 压缩页:对数据底层进行压缩,使实际大小小于逻辑大小。 在跨页检索数据的过程中,压缩和解压缩的效率低。在表设计时,尽可能在页内多存储行数据,减少跨页检索,增加页内检索。 分析: 1行数据为1K,1页16K,即1页16条数据,1亿的数据需要625万页 垂直分页后,1行数据为64字节(1K=1024字节),即1页256条数据,1亿的数据需要39万页。分页后的数据根据id等关系进行快速提取。 通过将重要字段单独剥离成小表,让每页容纳更多行数据,页减少后,缩小数据扫描范围,达到提高执行效率的目的。 垂直分表条件: 1.单表数据达千万 2.字段超20个,且包含vachar,CLOB,BLOB等字段 字段放大小表的依据: 小表:数据查询、排序时需要的字段;高频访问的小字段 大表:低频访问字段;大字段
  • SONNY-BOY:还差一个点赞,快快快
  • 鸡蛋不是弹:要是能把硬币能多投几个就好了。
  • 哈略噗略噗略哈:很有收获,干货很多
  • 我本可以你说呢:问题来了 反范式表的冗余表 最后列50 60个你再垂直分表 会怎么样???????????