[英]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.