我使用LOAD DATA LOCAL INFILE
将数据从文本文件导入mysql。
如果我将所有数据一次性地输出到mysql master,我会在主服务器和从服务器之间产生相当多的多次复制漂移。其他更改master上数据的进程需要等待很长时间才能看到它们的更改被复制到slave。
我不介意,如果我的导入需要更长的时间。
如何减慢LOAD DATA LOCAL INFILE,意味着强制它提交并在导入文件的每1000行后等待几秒钟?
我正在使用mysql-connector-java 5.1.6
以下代码片段中的data_files 是一个地图文件和相应的表名。
import java.sql.Connection;
import java.sql.Statement;
import javax.sql.DataSource;
....
for (Map.Entry<String, String> entry : data_files.entrySet()) {
String batchStmt = String
.format("LOAD DATA LOCAL INFILE \"%s\" IGNORE INTO TABLE %s IGNORE 1 LINES",
entry.getValue(), entry.getKey());
stmt.addBatch(batchStmt);
}
stmt.executeBatch();
connection.commit();