使用Pentaho Kettle做了个数据抓取入库的程序,大致这个样:
使用文本调测的时候,速度大概7500条/秒,但是换上数据库后,速度只有150条/秒,对于20万左右的数据入库要超过20分钟,这让人没法接受。
使用批量插入好像也没什么效果,依然慢
求助Google,找到了2个参考:
参考1:http://julienhofstede.blogspot.nl/2014/02/increase-mysql-output-to-80k-rowssecond.html
参考2:http://forums.pentaho.com/showthread.php?142217-Table-Output-Performance-MySQL#9
描述的基本一致,根据参考调整了连接参数:
- useServerPrepStmts=false
- rewriteBatchedStatements=true
- useCompression=true
数据写入速度马上提升到2300条/秒左右,开3个线程,写入速度就与文本写入差不多了。