日期:2014-05-16  浏览次数:20683 次

MySQL Cluster7.2在线增加数据节点存在重大弊端

今天我尝试了下mysql cluster7.2最新版,在线增加数据节点的时候,存在重大弊端。

到底是什么弊端?

答:首先,新增加的节点,按照手册上给出的步骤,必须重启所有的NODB数据节点,并且重启所有的SQL节点,从设计上就很不合理,重启数据节点,避免不了造成性能下降,重启SQL节点,很可能造成前端程序,比如PHP访问不了数据库,当然,SQL节点可以通过安装LVS+Keepalive避免这个问题的发生,但避免不了造成性能下降。

其次,重大弊端是:前端PHP程序往里面插入数据的时候,新增加的节点不能往里面写数据,手册上说的,必须通过命令ALTER ONLINE TABLE test.t1 OPTIMIZE TABLE;重新进行分片,这样才能激活新增加的节点,假如我有个表很大,70多G,那么这么大的表进行分片操作,时间就会非常长,而且这个时候会锁表,导致前端访问不了该表,并且有可能出现未知的错误。这点设计上非常的傻,不能自动识别,而且手工识别,风险太大。

所以,一开始就要规划好,我的数据量有多大,压力有多大,如果事后再亡羊补牢,mysql cluster这点上来看还很不成熟。期待着mysql cluster能像replication复制那样有更好的扩展性。