CDA持证人阿涛哥

2021-01-31   阅读量: 641

Mysql

49,上面提到横向分表和纵向分表,可以分别举一个适合他们的例子吗?

扫码加入数据分析学习群

横向分表是按行分表.假设我们有一张用户表,主键是自增ID且同时是用户的ID. 数据量较大,有1亿多条,那么此时放在一张表里的查询效果就不太理想.我们可以根据主键ID进行分表, 无论是按尾号分, 或者按ID的区间分都是可以的. 假设按照尾号0-99分为100个表,那么每张表中的数据就仅有100w.这时的查询效率无疑是可以满足要求的.
纵向分表是按列分表.假设我们现在有一张文章表. 包含字段id-摘要-内容.而系统中的展示形式是刷新出一个列表,列表中仅包含标题和摘要,当用户点击某篇文章进入详情时才需要正文内容.此时,如果数据量大,将内容这个很大且不经常使用的列放在一起会拖慢原表的查询速度. 我们可以将上面的表分为两张.id-摘要,id-内容.当用户点击详情,那主键再来取一次内容即可.而增加的存储量只是很小的主键字段.代价很小.
当然,分表其实和业务的关联度很高,在分表之前一定要做好调研以及benchmark.不要按照自己的猜想盲目操作.


0.0189 1 0 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子