1. 程式人生 > >(MariaDB/MySQL)MyISAM存儲引擎讀、寫操作的優先級

(MariaDB/MySQL)MyISAM存儲引擎讀、寫操作的優先級

soft 寫鎖 數量 .cn .html 16px ace mysql data

MariaDB/MySQL中使用表級鎖的存儲引擎(例如MyISAM、Aria(MariaDB對MyISAM引擎的改進,前身是MyISAM))在讀(select)、寫操作(insert、delete、update、replace)上有優先級的概念。默認情況下,寫操作的優先級高於讀操作。註:不適用於InnoDB存儲引擎。

以MyISAM為例。當有進程正在寫MyISAM表的時候,又有新的讀操作、寫操作出現,則會先執行完所有的寫操作,等寫完後才會讀表。實際上並非總是先執行完所有寫操作,因為有系統變量max_write_lock_count控制最大寫鎖數量,當這些數量的寫操作完成後會轉為執行讀操作。

所以,INSERT、LOAD DATA INFILE、UPDATE、REPLACE、DELETE語句都有LOW_PRIORITY

關鍵字,用來降低對MyISAM存儲引擎的寫操作優先級,使得MariaDB先執行完所有的讀操作後再執行寫操作。而SELECT語句有HIGH_PRIORITY關鍵字,用來提高讀操作的優先級。除了這兩個關鍵字,還可以設置系統變量low_priority_updates=on來降低寫操作優先級。

唯一需要註意的是,INSERT語句不僅有LOW_PRIORITY,也有HIGH_PRIORITY。當使用INSERT HIGH_PRIORITY語句時,表示禁用INSERT的並發插入行為。

回到Linux系列文章大綱:http://www.cnblogs.com/f-ck-need-u/p/7048359.html


回到網站架構系列文章大綱:http://www.cnblogs.com/f-ck-need-u/p/7576137.html
回到數據庫系列文章大綱:http://www.cnblogs.com/f-ck-need-u/p/7586194.html
轉載請註明出處:http://www.cnblogs.com/f-ck-need-u/p/8907252.html

註:若您覺得這篇文章還不錯請點擊右下角推薦,您的支持能激發作者更大的寫作熱情,非常感謝!

(MariaDB/MySQL)MyISAM存儲引擎讀、寫操作的優先級