Atlas & mysql-proxy
Atlas
https://github.com/Qihoo360/Atlas
https://github.com/Qihoo360/Atlas/wiki/Installing-Atlas
Atlas is a MySQL protocol-based database middleware project developed and maintained by infrastructure team of the Web platform Department in QIHU 360 SOFTWARE CO. LIMITED(NYSE:QIHU). It fixed lots of bugs and added lot of new functions on the basis of MySQL-Proxy 0.8.2. Currently the project has been widely applied in QIHU, many MySQL business has connected to the Atlas platform. The number of read and write requests forwarded by Atlas has reached billions.
Atlas的分表功能简介
2.tables参数设置格式:数据库名.表名.分表字段.子表数量,比如你的数据库名叫school,表名叫stu,分表字段叫id,总共分为100张表,那么就写为school.stu.id.100,如果还有其他的分表,以逗号分隔即可。用户需要手动建立100张子表(stu_0,stu_1,…stu_99,注意子表序号是从0开始的)。且所有的子表必须在DB的同一个database里。
点评:取模方法简单好理解,而再扩展子表就麻烦了,不如一致性哈希算法灵活,不用大量迁移数据。
4.Atlas暂不支持自动建表和跨库分表的功能。
架构图
https://github.com/Qihoo360/Atlas/wiki/The-Architecture-Of-Atlas
Mysql-proxy
https://downloads.mysql.com/archives/proxy
https://github.com/mysql/mysql-proxy