【发布时间】:2016-11-19 23:11:45
【问题描述】:
我正在尝试将 5000 万个 HTML 文件中的信息提取到 MySQL 数据库中。我的问题是我应该在这个过程中的什么时候将信息存储到 MySQL 数据库中。例如,我正在考虑以下选项:
- 打开每个文件并提取我需要的信息。解析每个文件后执行 INSERT。
- 打开每个文件并提取我需要的信息。作为中介,将信息存储到 CSV 文件中。将所有文件解析为 CSV 后,使用 LOAD DATA INFILE 执行批量上传
我知道 LOAD DATA INFILE 比单独的 INSERT 语句要快得多,如果我已经有 CSV 中的信息。但是,如果我没有 CSV 中已有的信息,我不知道先创建 CSV 是否更快。
问题的关键在于:写入本地 CSV 是更快还是与单个 INSERT 语句大致相同?
我正在使用 PHP,以防万一。提前致谢!
【问题讨论】:
-
这是一个折腾。 CSV 具有写入文件的额外开销,但在执行实际插入时更快。
-
这不是问题。您的大部分时间将花在打开文件和解析它们上,而不是花在
INSERTs/LOAD上。
标签: mysql performance csv