单服务下的数据库分库是否有意义?

我知道分库分表原因简单来说主要有以下两个:
原因1:单表数据量过大,出现查询性能问题
原因2:业务访问压力过大,出现IO瓶颈或CPU瓶颈

分库分表可以缓解上述问题,但对分库有一个小疑问,从分库的字面上理解,有下面两种做法:
分库方式1:在同一台服务器上(或者说在同一个mysql服务下)拆分为两个database
分库方式2:拆分到不同的数据库服务器分摊访问压力

针对第一种分库,这么做能解决什么问题,有什么好处呢?一般什么情况下这么做?

谢谢解答。

阅读 4.1k
2 个回答

同一台数据库主要靠分表来优化,不需要分库;
除非业务耦合度很低,需要用不同库来区分不同业务,赋予不同访问权限。

第一种应该是分表,有垂直分表和水平分表,也可混用

  1. 垂直分表,冷热数据分离
  2. 水平分表,一般按照时间分表

垂直分表可以降低被锁概率,水平分表降低单表数据量,降低索引B树的高度,提升查询效率

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题