分库分表方案调研

为什么分库分表

  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:代理端

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容