我在数据日志文件中有以下格式的数据。
每一行代表数据库中的一行,一次要插入 500-1000 行。
最好直接调用存储过程向数据库中插入数据(存储过程包含调用日志文件和插入数据的逻辑)
或
在应用程序中解析并插入数据是否更好。
29 2011-02-01 11:00:40 1 0 1 0
30 2011-02-01 11:00:44 1 0 1 0
32 2011-02-01 11:00:49 1 0 1 0
最佳答案
这可能是 .tsv 格式(制表符分隔值)。
LOAD DATA LOCAL INFILE 'uniq.csv' INTO TABLE tbl
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
LINES TERMINATED BY '\n'
(column1, column2, column3)
\t 是制表符。如果它不起作用,请将其更改为空间。
逐行手动处理效率不高,因为当您尝试逐行读取时,会多次访问硬盘。 LOAD 命令应该一次读取整个文件。
您应该记住,索引会严重减慢这样的插入速度。如果您需要读取大量数据(例如 100000 行)- 有时最好删除索引、插入并在插入后重新创建索引。
关于c# - 高效的批量数据插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9350649/