我目前正在研究将我们的INNODB
数据库移动到一个ndb cluster
(与(再次)购买更大的服务器并将主/从服务器移动到这些)。
到目前为止,我在小型集群上的测试卓有成效,表明我们将从中受益(尤其是在数据弹性/写入访问方面)。但是我有一个小问题。我们有一个大表(大约占整个数据库大小的 30% - 或目前 60GB apx),它完全由 BLOB 字段(80+)组成,并且在开头有一个字段uniqRowID (INT AUTO INCREMENT)
来标识行。其中很少有包含非常多的数据(主要是一些文本/数字/日期等),很多实际上是空的(NULL)。这些都没有索引。我们不断添加新行,也经常读取旧行。更新很少而且很远。
在集群中运行时,这可能会成为问题吗?
根据我的阅读,我了解到 BLOB 字段在后台保存在单独的表/页面中,因此需要单独读取主数据。但是看不出这是否像 INNODB,其中第一个 x 数据存储在主表中,其余的单独保存,或者整个东西是分开的。
我运行了一些简单的测试,插入具有相似数据的记录(基于磁盘的和普通的),具有各种连接等,没有显示任何差异。但我担心我的小型测试系统根本没有足够的压力,而且还没有资源(或财务)来运行全尺寸测试。
任何有这方面经验的人都可以告诉我我是否走对了路,或者我只是走进了一场噩梦?
经过进一步测试,我的问题似乎不是性能问题,而是简单地创建表,因为许多 BLOB 字段超过了最大行大小,所以我什至无法创建表!
BLOB
在它放弃之前,我到达了大约 47 个字段。