首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NDBCluster加载数据文件性能

NDBCluster加载数据文件性能
EN

Stack Overflow用户
提问于 2012-05-10 02:58:12
回答 1查看 853关注 0票数 0

我正在尝试将一些数据加载到MySQL集群中。该群集总共有5个虚拟机,每个虚拟机8 GB内存,全部运行CentOS和MySQL群集7.2.5。所有5个虚拟机都位于同一物理刀片上,因此它们之间的网络瓶颈应该最小。这是一张我的config.ini的贴纸,还有一张my.cnf的。我被限制为两个链接,所以我不能粘贴表模式,但基本上它有大部分int列和几个text列。主键是一个bigint和一个int上的组合键。

我正在加载的数据文件总共是129MB,并且我得到的速度大约是150行/秒,这是非常糟糕的。我将不得不在更大的规模上这样做,按照这种速度,可能需要几天的时间才能加载。有没有什么我应该调整的参数来显著提高速度?我发现了类似的关于myisam和innodb批量加载的参数调优的帖子,但还没有看到任何关于NDB表的帖子。

下面是load data infile命令:

代码语言:javascript
复制
LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY '|' ESCAPED BY '\\' LINES TERMINATED BY '\n';

当我运行相同的命令,但将表的引擎更改为innodb时,它每秒加载20,000行,而不是每秒150行。

EN

回答 1

Stack Overflow用户

发布于 2013-04-12 08:10:17

是的,MySQL集群是一个不同的野兽,将您的所有数据跨多个节点进行分区。

您可以先加载到Innodb,请参阅:http://johanandersson.blogspot.co.nz/2012/04/mysql-cluster-how-to-load-it-with-data.html

简而言之:

增加ndb批处理大小(如果您知道自己在做什么,我还没有尝试过)并使用多个连接

代码语言:javascript
复制
SET ndb_batch_size=8*1024*1024;

在每一张桌子上

代码语言:javascript
复制
ALTER TABLE tablename ENGINE=ndbcluster;

最后

代码语言:javascript
复制
ANALYZE TABLE tablename;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10522416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档