淺析mysql 語句的調(diào)度優(yōu)先級及改變
MySQL的默認的調(diào)度策略可用總結(jié)如下:
· 寫入操作優(yōu)先于讀取操作。
· 對某張數(shù)據(jù)表的寫入操作某一時刻只能發(fā)生一次,寫入請求按照它們到達的次序來處理。
· 對某張數(shù)據(jù)表的多個讀取操作可以同時地進行。
MySQL允許你改變語句調(diào)度的優(yōu)先級
MySQL提供了幾個語句調(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語句。
LOW_PRIORITY和HIGH_PRIORITY調(diào)節(jié)符影響那些使用數(shù)據(jù)表鎖的存儲引擎(例如MyISAM和MEMORY)。DELAYED調(diào)節(jié)符作用于MyISAM和MEMORY數(shù)據(jù)表。
update/insert/load data /replace/delete[low_priority]....
select/insert[high_priotiy]...
如果寫入操作是一個LOW_PRIORITY(低優(yōu)先級)請求,那么系統(tǒng)就不會認為它的優(yōu)先級高于讀取操作。在這種情況下,如果寫入者在等待的時候,第二個讀取者到達了,那么就允許第二個讀取者插到寫入者之前。只有在沒有其它的讀取者的時候,才允許寫入者開始操作。理論上,這種調(diào)度修改暗示著,可能存在LOW_PRIORITY寫入操作永遠被阻塞的情況。如果前面的讀取操作在進行的過程中一直有其它的讀取操作到達,那么新的請求都會插入到LOW_PRIORITY寫入操作之前。
SELECT查詢的HIGH_PRIORITY(高優(yōu)先級)關(guān)鍵字也類似。它允許SELECT插入正在等待的寫入操作之前,即使在正常情況下寫入操作的優(yōu)先級更高。另外一種影響是,高優(yōu)先級的SELECT在正常的SELECT語句之前執(zhí)行,因為這些語句會被寫入操作阻塞。
如果你希望所有支持LOW_PRIORITY選項的語句都默認地按照低優(yōu)先級來處理,那么請使用--low-priority-updates選項來啟動服務(wù)器
注意:以上說明是針對使用表鎖的存蓄引擎而言,比如myisam 和merge 等
相關(guān)文章
master and slave have equal MySQL server UUIDs 解決方法
使用rsync配置了大量mysql,省去了大量編譯和配置的時間,隨逐個修改master和slave服務(wù)器的my.cnf,后,發(fā)現(xiàn)數(shù)據(jù)不能同步2013-07-07MySql中的Full?Text?Search全文索引優(yōu)化
這篇文章主要為大家介紹了MySql中的Full?Text?Search全文索引優(yōu)化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05mysql 發(fā)生系統(tǒng)錯誤1067的解決方法
今天要把WEB項目打包成EXE,可是在數(shù)據(jù)庫上卡住了。在啟動數(shù)據(jù)庫服務(wù)的時候發(fā)生系統(tǒng)錯誤 1067。2009-09-09MySQL性能監(jiān)控軟件Nagios的安裝及配置教程
這篇文章主要介紹了MySQL性能監(jiān)控軟件Nagios的安裝及配置教程,這里以CentOS操作系統(tǒng)為環(huán)境進行演示,需要的朋友可以參考下2015-12-12MySQL遞歸查找樹形結(jié)構(gòu)(這個方法太實用了!)
對于數(shù)據(jù)庫中的樹形結(jié)構(gòu)數(shù)據(jù),如部門表,有時候,我們需要知道某部門的所有下屬部分或者某部分的所有上級部門,這時候就需要用到mysql的遞歸查詢,下面這篇文章主要給大家介紹了關(guān)于MySQL遞歸查找樹形結(jié)構(gòu)的相關(guān)資料,需要的朋友可以參考下2022-11-11