在日常的开发过程中,数据库在系统的数据量的增长和用户数的增加,会引起数据库性能的瓶颈,这就需要我们优化数据库的结构,突破数据库的性能瓶颈!目前,行业中有一种比较好的解决方式:数据库的垂直拆分和水平拆分!
数据库垂直拆分解决了数据库表与表之间io流的竞争引起的数据库访问性能的瓶颈问题,但是这种方式无法解决数据库单表大数据量引起的数据库性能瓶颈问题!
数据库水平拆分刚好解决了刚刚说到的数据库单表大数据量引起的数据库瓶颈问题!
数据库垂直拆分:就是将数据库中的表按照模块或者业务归类成不同部分,将这些拆分后的表分区放置到不同的服务器上,解决表与 表之间的IO流的竞争!
数据库水平拆分:就是将数据库中大数据量的单表,根据业务场景的的划分,将不同类型的数据拆分到不同的新表中,减少单表数据的访问压力问题!
举个例子来说明一下:
用户表、订单表、物品分类表
假设:由于用户量暴增,导致数据库系统性能急剧下降,现要求优化数据库结构!提高数据库数据的处理性能!
这边,我根据数据库的业务模块功能,分析订单表的访问量要远远大于用户表和物品分类表的访问量,根据数据库的垂直拆分原则,我可以将订单表单独分离出来,存放到单独的服务器上,减缓数据库表与表之间的数据库访问压力竞争!
后来随着业务数据量的增长!发现订单单表由于数据量过大,导致数据库表访问性能下降!故而,需要对数据库大数据表进行数据库的水平拆分,减少单表数据量,提升单表数据的处理性能!
数据库表的水平拆分和垂直拆分
最新推荐文章于 2024-01-26 09:00:00 发布