ndb是一种存储引擎,通常在mysql cluster中使用,MySQL Cluster 是一个基于NDB Cluster 存储引擎的完整的分布式数据库系统。
和Oracle Real Cluster Application 不太一样的是,MySQL Cluster 是一个Share Nothing 的架构 各个MySQLServer 之间并不共享任何数据,高度可扩展以及高度可用方面的突出表现是其最大的特色。
目前还是MySQL 家族中的一个新兴产品 优势:可用性非常高,性能非常好。
每一分数据至少在不同主机上面存在一份拷贝,且 冗余数据拷贝实时同步。 劣势:维护较为复杂,产品还比较新,存在部分bug,目前还不一定适用于比较核心的 线上系统。
drdb是一种数据高可用 数据冗余方案 简单来说,DRBD 其实就是通过网络来实现块设备的数据镜像同步的一款开源Cluster 软件,也被俗称为网络RAID1
优势:软件功能强大,数据在底层快设备级别跨物理主机镜像,且可根据性能和可靠性 要求配置不同级别的同步。
IO 操作保持顺序,可满足数据库对数据一致性的苛刻要求。
劣势:非分布式文件系统环境无法支持镜像数据同时可见,性能和可靠性两者相互矛盾, 无法适用于性能和可靠性要求都比较苛刻的环境。
维护成本高于MySQL Replication。
初步结论:楼主数据量大,还是超大,如果业务不是特别关键,建议用MySQL Cluster,遇到BUG也为MySQL Cluster提供些问题和建议,一起完善它。
如果业务又很关键,那还要具体分析,为什么要采用集群,是哪里存在瓶颈了,
据我所了解,MYSQL如果是关键业务,数据量又大,访问量也大,今后还会更大,可能无限制增长,那还是从数据分割上下手。
如果只是量大,但增长不会长期,那把服务器性能提升下得了,同时对数据库优化参数多研究下。
硬件主要是CPU能力、内存大小,磁盘性能,磁盘做RAID10或RAID50是最好的,不要做RAID5或RAID1。