- 論壇徽章:
- 0
|
« MySQL性能優(yōu)化13 – SQL_NO_CACHE/SQL_CACHE MySQL性能優(yōu)化15 – MyISAM 存儲(chǔ)引擎 » MySQL性能優(yōu)化14 – HIGH_PRIORITY/LOW_PRIORITY/INSERT DELAYED http://fred.oracle1.com/weblog/2 ... rityinsert-delayed/ Published on September 8, 2010 in database and MySQL. 0 Comments Tags: MySQL.
MySQL 還允許改變語句調(diào)度的優(yōu)先級(jí),它可以使來自多個(gè)客戶端的查詢更好地協(xié)作,這樣單個(gè)客戶端就不會(huì)由于鎖定而等待很長時(shí)間。改變優(yōu)先級(jí)還可以確保特定類型的查詢被處理得更快。
我們首先應(yīng)該確定應(yīng)用的類型,判斷應(yīng)用是以查詢?yōu)橹鬟是以更新為主的,是確保查詢效率還是確保更新的效率,決定是查詢優(yōu)先還是更新優(yōu)先。
下面我們提到的改變調(diào)度策略的方法主要是針對(duì) MyISAM 存儲(chǔ)引擎的,對(duì)于 InnoDB 存儲(chǔ)引擎,語句的執(zhí)行是由獲得行鎖的順序決定的。
MySQL 的默認(rèn)的調(diào)度策略可用總結(jié)如下:
* 寫入操作優(yōu)先于讀取操作。 * 對(duì)某張數(shù)據(jù)表的寫入操作某一時(shí)刻只能發(fā)生一次,寫入請(qǐng)求按照它們到達(dá)的次序來處理。 * 對(duì)某張數(shù)據(jù)表的多個(gè)讀取操作可以同時(shí)地進(jìn)行。
MySQL 提供了幾個(gè)語句調(diào)節(jié)符,允許你修改它的調(diào)度策略:
* LOW_PRIORITY 關(guān)鍵字應(yīng)用于 DELETE 、 INSERT、 LOAD DATA 、 REPLACE 和 UPDATE 。 * HIGH_PRIORITY 關(guān)鍵字應(yīng)用于 SELECT 和 INSERT語句。 * DELAYED 關(guān)鍵字應(yīng)用于 INSERT 和 REPLACE 語句。
如果寫入操作是一個(gè) LOW_PRIORITY(低優(yōu)先級(jí))請(qǐng)求,那么系統(tǒng)就不會(huì)認(rèn)為它的優(yōu)先級(jí)高于讀取操作。在這種情況下,如果寫入者在等待的時(shí)候,第二個(gè)讀取者到達(dá)了,那么就允許第二個(gè)讀取者插到寫入者之前。只有在沒有其它的讀取者的時(shí)候,才允許寫入者開始操作。這種調(diào)度修改可能存在 LOW_PRIORITY 寫入操作永遠(yuǎn)被阻塞的情況。
SELECT 查詢的 HIGH_PRIORITY (高優(yōu)先級(jí))關(guān)鍵字也類似。它允許 SELECT插入正在等待的寫入操作之前,即使在正常情況下寫入操作的優(yōu)先級(jí)更高。另外一種影響是,高優(yōu)先級(jí)的 SELECT 在正常的 SELECT語句之前執(zhí)行,因?yàn)檫@些語句會(huì)被寫入操作阻塞。
如果你希望所有支持 LOW_PRIORITY選項(xiàng)的語句都默認(rèn)地按照低優(yōu)先級(jí)來處理,那么請(qǐng)使用 --low-priority-updates 選項(xiàng)來啟動(dòng)服務(wù)器。通過使用 INSERT HIGH_PRIORITY 來把 INSERT[/cci] 語句提高到正常的寫入優(yōu)先級(jí),可以消除該選項(xiàng)對(duì)單個(gè) INSERT 語句的影響。 Share Related Posts
* September 13, 2010 -- MySQL鎖表機(jī)制分析 * September 9, 2010 -- HOWTO: configure MySQL’s my.cnf file * September 8, 2010 -- MySQL性能優(yōu)化21 – 使用隨機(jī)函數(shù)產(chǎn)生采樣 * September 8, 2010 -- MySQL性能優(yōu)化20 – ORDER BY 操作的優(yōu)化 * September 8, 2010 -- MySQL性能優(yōu)化19 – GROUP BY 操作的優(yōu)化 * September 8, 2010 -- MySQL性能優(yōu)化18 – 使用 GROUP BY WITH ROLLUP 改善統(tǒng)計(jì)性能 * September 8, 2010 -- MySQL性能優(yōu)化17 – INSERT操作的優(yōu)化 * September 8, 2010 -- MySQL性能優(yōu)化16 – InnoDB 存儲(chǔ)引擎 * September 8, 2010 -- MySQL性能優(yōu)化15 – MyISAM 存儲(chǔ)引擎 * September 8, 2010 -- MySQL性能優(yōu)化13 – SQL_NO_CACHE/SQL_CACHE |
|
|