关于ndbcluster的一个问题。
我继承了一个基于ndbcluster 5.1解决方案(lamp平台)的网站。
不幸的是,谁设计的前一个解决方案没有意识到,这个数据库引擎有很强的局限性。首先,一个表最多可以有128个字段。这位前程序员构想了一个表,在一行中有369个字段,一年中的每一天一个,外加一些关键字段(他最初使用myisam引擎)。好吧,无论如何,我知道它必须被重构。
更重要的是,引擎需要大量的调整:一个表的最大属性数(默认值是1000,有点太少)和许多其他参数,这些参数的错误解释或低估可能会导致严重的问题,一旦你在数据库的生产中,你被迫o改变一些东西。
即使ndbcluster表的磁盘存储如果没有精确配置,也是有点随意的:即使在create table语句中指定,引擎似乎更喜欢将数据保存在内存中—这解释了速度—但是如果节点1上的表突然崩溃(如它在测试过程中做到了)。所有节点上丢失的所有表数据以及仅在1000条记录之后损坏的表。
我们在一台8GB内存的服务器上,这个表只有27个字段。
请注意,节点关闭的ndb_mgm操作没有运行来破坏表数据。它只是掉了下来,停了下来。我们的供应商不明白为什么。
所以问题是:您是否推荐ndbcluster作为大规模web服务数据库的稳定解决方案?
我们说的是一个数据库,它应该包含数百万条记录、数千张表格和数千份目录。
如果不是这样的话,你会推荐哪个数据库是完成国家级规模的web服务任务的最佳选择。
提前谢谢。
最佳答案
我对ndbcluster的体验很糟糕。这是一个很好的memcached替换,只不过是范围失效。此解决方案不存在稳定性和可配置性。您不能强制所有进程监听特定端口,备份工作正常,但我必须在vim中编辑bkp文件以还原数据库等。