C# 将大量数据从 CSV 导入数据库

标签 c# multithreading csv etl relational-database

将大量数据从 CSV(超过 300 万行)加载到数据库的最有效方法是什么。

  • 数据需要格式化(例如姓名列需要拆分为名字和姓氏等)
  • 我需要尽可能高效地完成这项工作,即时间限制

我支持使用 C# 应用程序逐行读取、转换和加载数据的选项吗?这是理想的,如果不是,我有什么选择?我应该使用多线程吗?

最佳答案

您将受到 I/O 限制,因此多线程不一定会使它运行得更快。

我上次这样做时,大约有十几行 C#。在一个线程中,它运行硬盘的速度与从磁盘中读取数据的速度一样快。我一次从源文件中读取一行。

如果你不想自己写,你可以试试 FileHelpers图书馆。您可能还想看看 Sébastien Lorion's work .他的 CSV 阅读器是专门为处理性能问题而编写的。

关于C# 将大量数据从 CSV 导入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2641516/

相关文章:

c# - ajax总是进入代码的错误部分

c# - 如何使用 orderbydescending 在 linq 中查询?

java - 带 StringReader 的换行符 -\n 被忽略了吗?

c# - 如何在 ASP.NET MVC 中创建友好的 URL?

将我的 asp.net.core 2.0 应用程序发布到 IIS 时 JavaScript 未运行

c++ - 在多线程环境中从 STL Map 读取/写入

java - libgdx 中的多线程和加载 Assets

java - Java 中的线程。在新线程中创建每个图形,循环不起作用

python - 我的代码在 pandas 中运行正常,但在 modin 中运行不正常

php - laravel 5 Controller 中的 CSV 导出