首页 > 代码库 > 数据库水平分库,垂直分库的新理解

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

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

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

 

 

新理解:

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

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

相反:

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

如何取舍,看项目需求。

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