水平分库:当数据量巨大时,将数据放到不同的表中,比如表1,表2,表3,...;
垂直分库:当一张表的字段太多,可拆分出一张或多张分表,根据主键唯一标示;
新理解:
垂直分库:当一张表中字段不多,当某些字段长度过长,表占用空间很大,检索表的时候需要执行大量的IO(数据库检索的本质是对硬盘中的文件进行io访问),
此时可以考虑对长度较长的字段进行拆分,单独成表,用原表主键进行唯一标示。
相反:
当数据库记录数不多,但字段较多,可对部分字段进行整合,比如用户的信息(电话,手机号...),以json字符串的形式保存到数据库,这样一目了然,代价就是service层中要对json进行但多解析。
如何取舍,看项目需求。
--------------------------------------------------------------------------------------
2017.05.25
补充:
垂直拆分:以某些标准,将单个表拆分成多个表.
水平拆分:水平拆分行,行数据拆分到不同表中, 垂直拆分列,表数据拆分到不同表中.
以上所谓的概念标准都只是一种描述,其实更多的是一种思想,千万不能被以上概念影响,理解教条化.