分库分表知识总结(三)之水平分表

简介: 分库分表知识总结(三)之水平分表

水平分库

经过垂直分库后,数据库性能问题得到一定程度的解决,但是随着业务量的增长,PRODUCT_DB(商品库)单库存储数据已经超出预估。粗略估计,目前有8w店铺,每个店铺平均150个不同规格的商品,再算上增长,那商品数量得往1500w+上预估,并且PRODUCT_DB(商品库)属于访问非常频繁的资源,单台服务器已经无法支撑。此时该如何优化?

当一个应用难以再细粒度的垂直切分,或切分后数据量行数巨大,存在单库读写、存储性能瓶颈,这时候就需要进行水平分库了,经过水平切分的优化,往往能解决单库存储量及性能瓶颈

概念:

把同一个表的数据按一定规则拆到不同的数据库中,每个库可以放在不同的服务器上

它带来的提升:
  • 解决了单库大数据,高并发的性能瓶颈
  • 提高了系统的稳定性及可用性
  • 稳定性体现在 IO 冲突减少,锁定减少
  • 可用性指某个库出问题,部分可用
弊端:

由于同一个表被分配在不同的数据库,需要额外进行数据操作的路由工作,因此大大提升了系统复杂度

水平分表

库内的水平分表,解决了单一表数据量过大的问题,分出来的小表中只包含一部分数据,从而使得单个表的数据量变小,提高检索性能

概念:

在同一个数据库内,把同一个表的数据按一定规则拆到多个表中

它带来的提升:
  • 优化单一表数据量过大而产生的性能问题
  • 避免IO争抢并减少锁表的几率
目录
相关文章
|
21天前
|
缓存 关系型数据库 MySQL
分库分表知识总结(四)
分库分表知识总结(四)
45 1
|
21天前
|
存储 监控 数据库
分库分表知识总结(二)之垂直分表
分库分表知识总结(二)之垂直分表
54 1
|
21天前
|
SQL 存储 数据库连接
什么是分库分表,为什么要分库分表?
笔者经常将缓存、分库分表、消息队列定义为高并发三剑客。开发互联网应用系统时,分库分表是一个绕不开的技术点。 这篇文章,我们会探讨如下问题:
|
11月前
|
存储 缓存 数据库
什么是垂直分表、垂直分库、水平分表、水平分库?
什么是垂直分表、垂直分库、水平分表、水平分库?
112 0
|
11月前
|
SQL 算法 Java
水平分库和水平分表
水平分库和水平分表
|
11月前
|
算法 Java 数据库连接
垂直分表和垂直分库
垂直分表和垂直分库
|
存储 数据处理 数据库
分表方案有哪些
分表方案有哪些
84 0
|
存储 数据库连接 数据库
分库方案有哪些
分库方案有哪些
76 0
|
缓存 数据库 索引
水平分表
水平分表
106 0
水平分表