3
回答
MySQL主从复制集群和MySQL Cluster哪个适合存储海量数据,做数据仓库?

整个系统中存在很多遗留数据库,现准备整合作统一存储,看到MySQL Cluster有很多优秀的特性,高可用,可扩展,自动分区等,但是本人之前从没用过,网上的案例也是比较少的,有人说不支持外键,复杂等缺点。因为统一存储需要对遗留系统的影响做到最小所以不敢贸然使用,请各位有经验前辈解答一下。PS:如果单纯讲原理就不必回答了,时间紧急,希望能够提供些有用干货

举报
炁元
发帖于2年前 3回/706阅
共有3个答案 最后回答: 2年前

安装方法问度娘就好,不多说。

由于MySQL Cluster用的是NDB引擎,相对于常见的InnoDB来说,说一下比较容易出现的坑:

虽然支持事务,但是不支持MVCC,事务隔离级别也只能到READ COMMIT;JOIN操作很多不能在存储引擎层面完成(因为数据分散在不同数据节点上),需要返回到SQL层处理,所以复杂查询,特别是join用的多的话,性能很差,也有很大的网络开销;吃内存,要求数据和索引都要load到内存中(听说是新版本有改善,未测)。另外楼主说的外键的问题,新版本的NDB应该是有支持外键了。

其他的限制详细阅读一下这一章节:

https://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-limitations.html

总之,如果要上的话,需要针对上述限制做严格测试(特别是事务那个问题)。求快估计是没辙的,特别是你遗留系统很多,万一有问题也维护不过来。

你说的高可用现成的方案比较多,像是MHA,MMM等都比较成熟了。分库分表,读写分离,Failover等很多中间件也能支持。楼主的需求,可以关注一下MyCat中间件加上一个高可用方案应该基本就能满足了。这些你可以去具体了解一下。

--- 共有 1 条评论 ---
炁元谢谢啦 2年前 回复

我要告诉你的是,MySQL搞搞OLTP还可以,OLAP就是超级坑了,连基本的分析函数都不支持还做数据仓库?建议你安个Kylin或者Spark到Hadoop这类大数据平台上面去分析吧。

--- 共有 2 条评论 ---
魔力猫 回复 @炁元 : MySQL的OLAP 2年前 回复
炁元这个问题是我没有描述准确,你们说的都有道理着呢 2年前 回复
顶部