在磁盘存储中存储数据时,我很少考虑NDB群集。
在我的配置中,我定义了DataMemory = 20G。那么撤消日志文件的最大总大小是多少?我在博客中看到它应该是6xDataMemory。这是必须的吗?
创建撤消日志文件时,最好的创建方法是大量小尺寸文件或少量大尺寸文件?作为一个例子(1G文件中的10个或100M文件中的100个,如果我创建200M文件,缓冲区大小的最佳数量是什么)
与数据文件创建相同。是创建10个1G文件还是100个100M文件的最佳方法?
我将单独的数据文件用于单独的表空间,并且始终为一个表使用一个表空间。不为两个表使用相同的表空间。这是一个定义和分配表空间的好方法,还是通过对两个表使用相同的表空间来解决任何性能问题?
(这里我处理的流量很大,为4000 - 5000 TPS,NDB的数据库大小接近80GB。我有2个数据节点,2个mysql服务器。每个数据节点有128GB内存。)
答案 0 :(得分:0)
UNDO日志文件与磁盘数据更改的UNDO相关。所以没有 UNDO日志文件大小和DataMemory之间的真实关系。有一个 自REDO日志以来,DataMemory和REDO日志大小之间的关系 内存数据和磁盘数据部分都使用它。
是否使用小文件或更大的文件主要依赖于 文件系统的工作原理。我个人会开始使用 相当大的文件而不是那么多。
从性能的角度来看,使用一个没有区别 表空间或每个表使用一个表空间。我一直认为这是 为所有表使用一个表空间。但我不知道有什么问题 使用许多表空间。可能存在硬编码限制 你可以拥有的表空间。
显然,每个表的一个表空间意味着你可以摆脱它 如果感兴趣,请在删除表时快速传输文件。
UNDO日志的大小应该很好,只有几十GB 对于大多数用例。但是在大量插入时,可能需要更大的插入 UNDO日志的大小,因为检查点可能需要很长时间 大量插入。