Oracle提供了DataGuard;MySQL提供了Group Replication,简称MGR。
Oracle DataGuard的文章:http://www.cnblogs.com/adolfmc/p/5381737.html
MySQL Group Replication的文章:http://www.cnblogs.com/paul8339/p/7426880.html
MYSQL读写分离的中间件工具:http://www.cnblogs.com/zhoujinyi/p/6697141.html
360先开源了360Atlas,美团基于前者开源了DBProxy。
为什么要分库分表:分库降低了单点机器的负载;分表,提高了数据操作的效率,尤其是Write操作的效率。
一个500W行的数据,被水平分到10个表,每个表存储50W行技术,insert一条数据,如果有索引,索引重建就比大表快捷。
数据切分可以是物理上的,对数据通过一系列的切分规则将数据分布到不同的DB服务器上,通过路由规则路由访问特定的数据库,这样一来每次访问面对的就不是单台服务器了,而是N台服务器,这样就可以降低单台机器的负载压力。
数据切分也可以是数据库内的,对数据通过一系列的切分规则,将数据分布到一个数据库的不同表中,比如将article分为article_001,article_002等子表,若干个子表水平拼合有组成了逻辑上一个完整的article表,这样做的目的其实也是很简单的。
路由规则,可能就会用到一致性哈希算法,这样效率就高!路由规则就需要中间件,类似的产品有哪些?