数据库水平分库,垂直分库的新理解

水平分库:当数据量巨大时,将数据放到不同的表中,比如表1,表2,表3,...;

垂直分库:当一张表的字段太多,可拆分出一张或多张分表,根据主键唯一标示;

 

 

新理解:

垂直分库:当一张表中字段不多,当某些字段长度过长,表占用空间很大,检索表的时候需要执行大量的IO(数据库检索的本质是对硬盘中的文件进行io访问),

此时可以考虑对长度较长的字段进行拆分,单独成表,用原表主键进行唯一标示。

相反:

当数据库记录数不多,但字段较多,可对部分字段进行整合,比如用户的信息(电话,手机号...),以json字符串的形式保存到数据库,这样一目了然,代价就是service层中要对json进行但多解析。

如何取舍,看项目需求。

 --------------------------------------------------------------------------------------

2017.05.25

补充:

垂直拆分:以某些标准,将单个表拆分成多个表.

水平拆分:水平拆分行,行数据拆分到不同表中, 垂直拆分列,表数据拆分到不同表中.

以上所谓的概念标准都只是一种描述,其实更多的是一种思想,千万不能被以上概念影响,理解教条化.

posted @ 2016-12-06 13:01  it馅儿包子  阅读(1924)  评论(0编辑  收藏  举报