我在4台机器上运行MySQL Cluster(版本是7.3.10):
- 2台机器,用于2个MGM节点(和SQL节点)
- 2台数据节点的机器
但是插入时它太慢了(我每次使用批处理插入3000个语句,它只需要每秒900左右),然后尝试使用mysqldump也是一样慢,而且我一直在查找MySQL官方配置,但不知道要解决,这里有一些信息:
CPU:32个处理器内存:64GB网络:10000Mb / s
-------- config.ini ---------
[NDBD DEFAULT]
BackupMaxWriteSize=1M
BackupDataBufferSize=16M
BackupLogBufferSize=4M
BackupMemory=20M
BackupReportFrequency=10
MemReportFrequency=30
LogLevelStartup=15
LogLevelShutdown=15
LogLevelCheckpoint=8
LogLevelNodeRestart=15
DataMemory=12288M
IndexMemory=2048M
MaxNoOfTables=4096
MaxNoOfTriggers=3500
NoOfReplicas=2
StringMemory=25
DiskPageBufferMemory=512M
SharedGlobalMemory=256M
LongMessageBuffer=32M
BatchSizePerLocalScan=512
FragmentLogFileSize=64M
NoOfFragmentLogFiles=30
RedoBuffer=64M
MaxNoOfExecutionThreads=8
StopOnError=false
LockPagesInMainMemory=1
TimeBetweenEpochsTimeout=32000
TimeBetweenWatchdogCheckInitial=60000
TransactionInactiveTimeout=60000
HeartbeatIntervalDbDb=15000
HeartbeatIntervalDbApi=15000
MaxNoOfAttributes=10000
MaxNoOfOrderedIndexes=1024
MaxNoOfUniqueHashIndexes=512
MaxNoOfConcurrentTransactions=20000
MaxNoOfConcurrentOperations=100000
TimeBetweenGlobalCheckpoints=1000
TimeBetweenEpochs=200
这是内存使用:
Node 1: Data usage is 0%(2487 32K pages of total 393216)
Node 1: Index usage is 0%(2205 8K pages of total 262272)
Node 2: Data usage is 0%(2487 32K pages of total 393216)
Node 2: Index usage is 0%(2205 8K pages of total 262272)
任何人都可以帮助我?
答案 0 :(得分:0)
我一直在解决这个问题:
在JDBC URL rewriteBatchedStatements = true 上添加参数以使批量插入可以在一个SQL上提交(但您应该控制大小):
插入table_name(...)值(1,2,3),(4,5,6),(7,8,9);
这可以节省大量的TCP通信时间,如果没有添加此参数,MySQL连接器将默认执行以下行为(SQL提交逐个):
insert into table_name(...) values(1,2,3);
insert into table_name(...) values(4,5,6);
insert into table_name(...) values(7,8,9);
使用mysqldump导出MySQL数据时,可以添加参数 net_buffer_length = 8192 来控制每个SQL行的大小,不使用此参数,insert语句如下所示:
插入table_name(...)值(1),(2),(3),(4),(5)....
所有表数据都将附加在一个SQL上,当数据如此BIG且UNDO日志可能已满时,很难导回。
如果添加 extended-insert = false ,则SQL将类似于:
insert into table_name(...) values(1,2,3);
insert into table_name(...) values(4,5,6);
insert into table_name(...) values(7,8,9);
当数据太大时,可能会花费大量时间导入。