总结
垂直拆分?尽量把:
(1)长度较短
(2)访问频率较高
(3)经常一起访问
的属性放在主表里;
原因:数据库缓冲池,逻辑上,以row为单位缓冲数据。
举个例子,假设缓冲池1G
Case1,未拆分:
user表,1行记录为1k,只能缓存100w行数据
Case2,垂直拆分:
user_base表,1行记录为0.1k,能缓存1000w行数据
user_ext表,1行记录为0.9k,但访问频率较低
高可用,冗余+故障自动转移。
数据库有状态,冗余一定会引发一致性问题。
数据库工程架构设计,必须考虑什么:
(1)读性能提升
(2)高可用
(3)一致性保障
(4)扩展性
(5)垂直拆分