在磁盘存储中存储数据时,我很少考虑ndbcluster。
在我的配置中,我定义了datamemory=20g。那么,撤消日志文件的最佳总大小是多少?我在博客里看到应该是6xdatamemory。这是必须的吗?
创建撤消日志文件时,最好的方法是创建大量小文件还是创建少量大文件?例如(1g文件中的10个或100m文件中的100个,如果我创建200m文件,缓冲区大小的最佳数量是多少)
创建数据文件也是如此。最好的方法是创建10个1g文件还是100个100m文件?
我对单独的表空间使用单独的数据文件,并且总是对一个表使用一个表空间。两个表不使用相同的表空间。这是一种定义和分配表空间的好方法吗?或者对两个表使用相同的表空间不会有任何性能问题吗?
(这里我处理的是4000-5000 tps的巨大流量,ndb的数据库大小几乎为80gb。我有两个数据节点,两个mysql服务器。每个数据节点都有128gb内存。)
威尔逊·豪克
1条答案
按热度按时间jei2mxaa1#
撤消日志文件与撤消磁盘数据更改有关。因此,撤消日志文件大小和数据内存之间没有真正的关系。数据内存和重做日志大小之间存在关系,因为重做日志同时被内存数据和磁盘数据部分使用。
使用小文件还是大文件主要取决于文件系统的工作方式。就我个人而言,我会开始使用相当大的文件,而不是那么多。
从性能的Angular 来看,如果使用一个表空间或每个表使用一个表空间,则没有区别。我总是认为这是对所有表使用一个表空间。但是我不知道使用很多表空间有什么问题。不过,您可以拥有的表空间的数量可能有硬编码限制。
显然,每个表有一个表空间意味着您可以在删除一个表时快速删除文件(如果您感兴趣的话)。
对于大多数用例,撤销日志的大小应该非常合适,只有几十GB。但在大规模插入期间,可能需要更大的撤消日志大小,因为在大规模插入期间,检查点可能需要很长时间。