[英]Best way to bulk insert and update rows in multiple tables in mysql
我喜欢10个表插入,每个插入有1个1000条甚至10万条记录,并且还有4条表更新。 基本上,对于10万条记录,将插入100万条记录,并进行40万条更新,并且每小时可以运行一次。 而且主要的限制是整个10个表插入和4个表更新必须在一个事务中。
我读了几种方法,为了处理更新,我可能会使用一个临时表并将所有必须更新的ID转储到该表中,然后使用与该临时表的联接从更新到的REAL表中进行操作。完成。 但是我仍然没有有效的解决方案来批量插入10张桌子。 它正在消耗大量时间。 LOAD_DATA文件是一个选项,但不是实时提供的一个不错的选择,我可能最终会创建数十万个文件,因为此操作将在许多数据库和范围内进行。 请提出您的建议,以提高这些批量插入的速度。
我打算在mysql中更改“ bulk_insert_buffer_size”以及任何其他有用的参数。 所以任何建议都会对我有很大帮助
您如何尝试进行这些批量插入? 您是否正在使用某些客户端GUI(例如phpMyAdmin)? 请尝试在MySQL客户端提示符下运行SQL。
abhay> mysql -u<your_user> -h<your_host> -p < <path_to_your_sql_file>
这应该足够快以执行所有INSERT和UPDATES。 请切记将实际值放在适用的地方。 并且该SQL文件应包含有效的INSERT和UPDATE语句。
几点建议:
SET foreign_key_checks = 0
,并在末尾添加SET foreign_key_checks = 1
ALTER TABLE...DISABLE KEYS
和ALTER TABLE...ENABLE KEYS
希望能帮助到你!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.