分库分表方案调研

2019-04-01  本文已影响0人  李_lifuqing

为什么分库分表

  1. Mysql单表数据最多可达到10亿数据,业界公认Mysql单表容量在1千万以下是最佳状态,因为此时的BTREE索引树高度在3-5之间
  2. 单数据库实例的IO,CPU都有极限

什么是分库分表

1.把一个表的数据按规则分摊到多个表存储

主要难点问题

1.分布式事务问题
2.夸库join问题
3.排序,分页,聚合问题
4.多数据源管理

现有思路

1.客户端分片

应用层实现:在业务代码中判断使用的具体表
重写JDBC操作
定制ORM框架

2.代理端分片

在应用和数据库之间增加一个代理服务器

3.支持事务的分布式数据库分片

成熟的分布式数据库

现有开源框架

1.sharding-jdbc:客户端
2.MyCat:代理端

上一篇 下一篇

猜你喜欢

热点阅读