MySQL集群问题

我已经阅读了很多MySQL Cluster文档和一些教程,但我仍然有一些不清楚的东西,现在主要的是:

>当数据节点重新启动(崩溃并再次启动)时,它的数据是否仍然可用?更新/添加将照常工作?它会“同步”吗?
>集群的运行速度是否比独立运行速度快?特别是,我多次更新行,但一次更新一行,这意味着网络延迟可能会对性能产生影响.我可以遵循哪些模式来加快速度,例如添加更多sql节点或添加模式数据节点?

关于问题#2,行的更新采用以下语法:

UPDATE db_accounts.tbl_items SET items=items+%lld WHERE id_account=%u

“id_account”是一个索引(唯一).

最佳答案
MysqL Cluster是一个内存数据库(虽然有些列可以存储在磁盘上,但索引列不能存储).如果拔下插头,您的数据就会消失.重新加入群集的节点的恢复过程是它从幸存的节点中拉出丢失的数据(需要节点之间良好的快速链接),然后小心地应用复制事件,直到它赶上并可以主动参与.如果最近的备份可用,则可以从该备份而不是另一个节点重建备份,但原理是相同的:必须从头开始重新填充节点.

MysqL Cluster基本上是一个分布式哈希表.保存特定数据行的NDB节点由应用于主键的散列算法确定.假设您的数据在节点之间很好地传播,则通过添加节点来提高性能.如果查询必须触及多个节点,性能会受到严重影响 – 即.复杂的连接 – 但是在给定主键的情况下检索特定的行是快速的.

显然,鉴于节点是分布式的,缓慢或拥塞的网络将严重影响性能.

相关文章

目录MySQL卸载环境查看是否已安装MySQL卸载mysql服务查看是否...
目录数据类型数据类型分类数值类型以TINYINT认识整型族有符号...
目录表的约束空属性非空约束(NOT NULL Constraint)默认值定...
目录函数时间日期函数:字符串函数数学函数其他函数 函数 时间...
目录使用C语言连接库的安装C APImysql_initmysql_real_conne...
目录用户用户管理查询所有用户查看当前用户查看当前连接数创...