我正在尝试将一些数据加载到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命令:
LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test
FIELDS TERMINATED BY '|' ESCAPED BY '\\' LINES TERMINATED BY '\n';当我运行相同的命令,但将表的引擎更改为innodb时,它每秒加载20,000行,而不是每秒150行。
发布于 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批处理大小(如果您知道自己在做什么,我还没有尝试过)并使用多个连接
SET ndb_batch_size=8*1024*1024;在每一张桌子上
ALTER TABLE tablename ENGINE=ndbcluster;最后
ANALYZE TABLE tablename;https://stackoverflow.com/questions/10522416
复制相似问题