• Mysql 中可以使用 merge 进行分表,分为子表和总表,总表相当于几个字表的外壳。对应用程序几乎透明。插入数据的时候可以根据配置将数据插入到子表上。

  • 也可以自己建立分表的规则,比如按照ID的范围拆分表或者时间范围拆分表都可以,在业务逻辑里增加固定的规则比如计算 mod 除余的 hash 得到对应的 id 是在哪个表里,然后在这个表做查询或者插入。

  • 也可以引入数据库中间件,抽离分表的逻辑在中间件统一处理,对业务代码透明,维护中间件就可以了。比如 Mycat,或者阿里 Cobar 和 360 的 Atlas 都可以实现。