标签:mysql asp-net bulk insertion
我需要使用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个插入,然后执行它.
无论如何,每命令单插入方法都会让你付出代价.
标签:mysql,asp-net,bulk,insertion 来源: https://codeday.me/bug/20190705/1384455.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。