gpt4 book ai didi

mysql - 单独的 MySQL INSERT 语句与先写入本地 CSV 然后加载数据

转载 作者:行者123 更新时间:2023-11-29 19:56:00 25 4
gpt4 key购买 nike

我正在尝试将 5000 万个 HTML 文件中的信息提取到 MySQL 数据库中。我的问题是在这个过程中的什么时候我应该将信息存储到 MySQL 数据库中。例如,我正在考虑以下选项:

  1. 打开每个文件并提取我需要的信息。解析每个文件后执行 INSERT。
  2. 打开每个文件并提取我需要的信息。作为中介将信息存储到 CSV 文件中。将所有文件解析为 CSV 后,使用 LOAD DATA INFILE 执行批量上传

如果我已经在 CSV 中包含信息,我知道 LOAD DATA INFILE 比单独的 INSERT 语句要快得多。但是,如果我没有 CSV 中已有的信息,我不知道先创建 CSV 是否会更快。

问题的关键是:写入本地 CSV 是否比单个 INSERT 语句更快或大约相同?

我正在使用 PHP,以防万一。提前致谢!

最佳答案

他们的关键不是对每个条目执行一次插入,而是对内存中的条目进行批处理,然后执行批量插入。

参见:https://dev.mysql.com/doc/refman/5.7/en/insert.html

INSERT statements that use VALUES syntax can insert multiple rows. To do this, include multiple lists of column values, each enclosed within parentheses and separated by commas. Example:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

像 SQLAlchemy 或 Hibernate 这样的 ORM 足够智能(取决于配置),可以自动批量插入。

关于mysql - 单独的 MySQL INSERT 语句与先写入本地 CSV 然后加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40698926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com