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

MySQL 語句調度優先級機制:默認策略、LOW/HIGH/DELAYED 調節符與適用引擎

     編輯:MySQL 資料庫相關知識

默認調度策略(表鎖引擎:MyISAM/MEMORY)

  1. **寫操作優先於讀操作**。
  2. 同表寫操作串行,按到達順序排隊。
  3. 多個讀操作可並發執行。

調節符

關鍵字適用語句效果適用引擎
LOW_PRIORITYDELETE、INSERT、LOAD DATA、REPLACE、UPDATE降低寫優先級,讓等待的讀優先插隊;若持續有讀到達,寫可能**餓死**MyISAM、MEMORY
HIGH_PRIORITYSELECT、INSERT提升讀優先級,插隊到等待寫之前;高優先級 SELECT 也優於普通 SELECTMyISAM、MEMORY
DELAYEDINSERT、REPLACE客戶端立即返回,服務器排隊批量寫入;表鎖期間不阻塞讀MyISAM、MEMORY

語法範例

INSERT LOW_PRIORITY INTO t VALUES (1);
SELECT HIGH_PRIORITY * FROM t WHERE id=1;
INSERT DELAYED INTO t VALUES (1),(2);

全局默認低優先級寫入

mysqld --low-priority-updates
# 或 my.cnf
[mysqld]
low-priority-updates=1

InnoDB 差異

  • InnoDB 採用**行鎖 + MVCC**,讀寫不阻塞,**上述調節符均無效**。
  • InnoDB 優先級控制靠事務隔離級別、鎖等待超時、innodb_thread_concurrency 等參數。

選型建議

  • 批量導入數據(不影響線上查詢)→ INSERT DELAYED 或 LOW_PRIORITY。
  • 關鍵實時查詢(不可被寫阻塞)→ SELECT HIGH_PRIORITY。
  • 新架構優先選 InnoDB,避開表鎖調度複雜度。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved