目前MySQL原生集群的极限是MGR,MRG只是解决了数据同步,并不是分布式数据库.如果使用MyCat,sharding-jdbc,Vitess等分库分表的方案,除了面临SQL的限制,还有维护工作,特别是MyCat的维护.

如果必须要使用分布式,不如直接更换为分布式数据库,最好是支持SQL,最优是支持MySQL语法.

基于这个思想,技术调研如下技术方案,

过滤收费产品,例如ClustrixDB:

产品名 技术栈 SQL语法 事务支持 优势 缺点
Elasticsearch Lucene 不支持 不支持 全文检索服务,自动分片 主分片扩容较复杂,场景限制较大
CockroachDB NewSQL 支持 支持 F1的开源版本,原google开发人员,根正苗红,使用PG的SQL子集 起步阶段,文档不多
TiDB NewSQL 支持 支持 F1的开源版本,国人开发,支持MySQL语法 起步阶段,文档不多
Phoenix Hbase 支持 不支持 天然处理海量语句 使用OLAP,不适合OLTP
Trafodion Hbase 支持 支持 完全的事务支持,海量数据处理 目前看好像是国人维护了,对应商业EsgynDB数据库

个人感觉,目前NewSQL感觉CockroachDB靠谱些,毕竟根正苗红,也有风投跟进.Hbase的目前就Trafodion吧,毕竟支持完整的数据库事务,虽然背后是国人商业公司,也是属于apache的项目.

如果必须二选一,我跳CockroachDB,反正都是坑,而且NewSQL才是未来......

参考文献:

http://m.kejixun.com/article/161214/260357.shtml

http://www.infoq.com/cn/articles/situation-of-the-open-source-database

http://m.it168.com/article_2775118.html

http://bigdata.51cto.com/art/201704/536907.htm