首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 查詢與更新優先級調度:LOW_PRIORITY、HIGH_PRIORITY、DELAYED 實戰指南

     編輯:MySQL 資料庫相關知識

預設調度策略

  1. 寫入(INSERT/UPDATE/DELETE)優先於讀取(SELECT)。
  2. 同表同一時刻僅允許一個寫入,按到達順序排隊。
  3. 多個讀取可並發執行。

調度修飾符

關鍵字適用語句效果
LOW_PRIORITYDELETE、INSERT、LOAD DATA、REPLACE、UPDATE降低寫入優先級,讓等待中的讀取優先執行;可能導致寫入餓死
HIGH_PRIORITYSELECT、INSERT提升讀取/插入優先級,插隊至等待寫入之前;SELECT 也優於普通 SELECT
DELAYEDINSERT、REPLACE客戶端立即返回,資料進記憶體隊列異步寫入;高吞吐但非即時可見

全域預設調整

  • 啟動參數 --low-priority-updates:所有支援 LOW_PRIORITY 的語句預設低優先級。
  • 單條 INSERT 覆蓋:INSERT HIGH_PRIORITY 恢復正常寫入優先級。

選型建議

  • 讀多寫少(報表、查詢系統):啟用 --low-priority-updates,關鍵寫入用 HIGH_PRIORITY。
  • 寫多讀少(日誌、採集系統):保持預設,關鍵查詢用 HIGH_PRIORITY。
  • InnoDB 引擎:調度由行鎖獲取順序決定,上述修飾符僅對 MyISAM 生效。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved