我需要使用asp.net/
C#读取excel表并将所有记录插入到mysql表中.excel表包含大约2000行和50列.目前,在阅读excel记录后,我将使用prepare语句逐个插入到mysql表中.但由于数据庞大,它需要大约70秒.
我还想过创建一个新的数据行,为每个单元格赋值,将结果数据流添加到datatable,最后调用dataadapter.update(…).但它似乎很复杂,因为我有大约50列,因此我必须为数据行分配50个值.
有人可以建议是否有替代方案来改善插入的性能?
谢谢
最佳答案 MySQL
LOAD DATA INFILE类似于MS SQL的BULK INSERT,它将为您提供最佳性能.
您可以在循环浏览Excel单元格时连接文本文件,但为了获得更高的性能提升,请尝试一次性从Excel导出文件 – 我不确定您需要如何精确导出文件(分隔符等)
编辑:
或者,如果你没有胃/时间来尝试这样的事情,至少可以将尽可能多的VALUES行传递到单个INSERT语句中:
INSERT INTO tbl_name(a,b,c)VALUES(1,2,3),(4,5,6),(7,8,9); (也来自MySQL网站.)
我不知道5000是否高于理论极限 – 可能? – 所以每个语句只能组装100个插入,然后执行它.
无论如何,每命令单插入方法都会让你付出代价.