Mysql
MySQL - INSERT DELAYED <- deprecated 現在怎麼辦?
我剛剛查看了 MySQL 文件的https://dev.mysql.com/doc/refman/5.7/en/insert-delayed.html
我打算使用 INSERT DELAYED,但我看到這已被棄用。
我仍然需要這個功能來與一些處理一些非常大的數據傳輸的 PHP 程式碼兼容。我很高興更新我的 PHP,但我現在不知道如何實現相同的功能。
既然傳統的 INSERT DELAYED 已被棄用,我們將如何獲得與傳統 INSERT DELAYED 相同的結果?
INSERT DELAYED 僅適用於 MyISAM、MEMORY、ARCHIVE 和 BLACKHOLE 表。對於不支持 DELAYED 的引擎,會發生錯誤。
您可以降級到 MySQL 5.5(當然,我是在開玩笑)。我有三個建議。請調查他們。
建議 #1
您可以設置 MySQL 複製並執行以下操作
- 批量插入儲存引擎為 BLACKHOLE 的 Master 上的表中。
- 從站上的同一個表將是 InnoDB。在從站上執行您的 SELECT
- 請參閱我 3.5 年前的文章How to do things like UPDATE DELAYED in MySQL
建議 #2
調整 InnoDB 環境以處理更快的寫入。請參閱我 4.5 年前的文章如何在 InnoDB 引擎中使用插入延遲並為插入語句使用更少的連接?並且從 infile 載入的 Mysql 卡在硬碟上等待
建議#3
自定義批量插入以使用像 mysqldump 一樣一次載入固定數量的行的擴展插入。