gpt4 book ai didi

mysql - 在 mysql 的多个表中批量插入和更新行的最佳方法

转载 作者:行者123 更新时间:2023-11-29 03:10:27 24 4
gpt4 key购买 nike

我有大约 10 个表插入,每个插入有 1 个 1000 甚至 10 万条记录并且还有 4 个表更新。基本上对于 10 万条记录,这将是 100 万次插入和 40 万次更新,这可以每小时运行一次。主要约束是整个 10 个表插入和 4 个表更新必须在一个事务中。

我阅读了几种方法。为了处理更新,我可能会使用临时表并将所有必须更新的 ID 转储到表中,然后使用与 REAL 表中的临时表的连接更新必须完成。但我仍然没有批量插入 10 个表的有效解决方案。它消耗了很多时间。 LOAD_DATA 文件是一个选项,但这可能不是实时提供的好选择我可能最终会创建成千上万个文件,因为此操作将在许多数据库和范围内发生。请提供您的建议以提高这些批量插入的速度。

我计划更改 mysql 中的“bulk_insert_buffer_size”以及任何其他有用的参数。所以任何类型的建议都会对我有很大帮助

最佳答案

您如何尝试进行这些批量插入?您使用的是像 phpMyAdmin 这样的客户端 GUI 吗?请尝试在 MySQL 客户端提示符下运行 SQL。

abhay> mysql -u<your_user> -h<your_host> -p < <path_to_your_sql_file> 

这应该足够快以执行所有插入和更新。请记住在适用的地方放置实际值。 SQL 文件应包含有效的 INSERT 和 UPDATE 语句。

一些建议:

  1. 您可以尝试在 SQL 文件的开头添加 SET foreign_key_checks = 0 并在末尾添加 SET foreign_key_checks = 1
  2. 如果您的表有很多索引,暂时禁用它们可能会有所帮助。尝试 ALTER TABLE...DISABLE KEYSALTER TABLE...ENABLE KEYS
  3. 您甚至可以选择拆分成多个 SQL 文件,每个表一个

希望对您有所帮助!

关于mysql - 在 mysql 的多个表中批量插入和更新行的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9340255/

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