水平分库:当数据量巨大时,将数据放到不同的表中,比如表1,表2,表3,...;
垂直分库:当一张表的字段太多,可拆分出一张或多张分表,根据主键唯一标示;
新理解:
垂直分库:当一张表中字段不多,当某些字段长度过长,表占用空间很大,检索表的时候需要执行大量的IO(数据库检索的本质是对硬盘中的文件进行io访问),
此时可以考虑对长度较长的字段进行拆分,单独成表,用原表主键进行唯一标示。
相反:
当数据库记录数不多,但字段较多,可对部分字段进行整合,比如用户的信息(电话,手机号...),以json字符串的形式保存到数据库,这样一目了然,代价就是service层中要对json进行但多解析。
如何取舍,看项目需求。
时间: 2024-10-22 04:48:05