《Mysql應用有關MyISAM引擎的鎖定機制》要點:
本文介紹了Mysql應用有關MyISAM引擎的鎖定機制,希望對您有用。如果有疑問,可以聯系我們。
本節內容:
MyISAM引擎的鎖定機制MYSQL數據庫
在mysql數據庫中,MyISAM存儲引擎適合于讀頻率遠大于寫頻率這一情況.
目前的應用可能會出現在某一時段讀寫頻率相當.MYSQL數據庫
大致如下:
一個客戶端發出需要長時間運行的SELECT
其他客戶端在同一個表上發出INSERT或者UPDATE,這個客戶將等待SELECT完成
另一個客戶在同一個表上發出另一個SELECT;因UPDATE或INSERT比SELECT有更高有優先級,該SELECT將等待UPDATE或INSERT完成,也將等待第一個SELECT完成
也就是說對MyISAM表的讀操作,不會阻塞其他用戶對同一表的讀哀求,但會阻塞對同一表的寫哀求;對 MyISAM表的寫操作,則會阻塞其他用戶對同一表的讀和寫操作
;MyISAM表的讀操作與寫操作之間,以及寫操作之間是串行的!MYSQL數據庫
辦理方案:
MyISAM存儲引擎有一個系統變量concurrent_insert,專門用以控制其并發插入的行為,其值分別可以為0、1或2.
0 不允許并發操作
1 如果MyISAM表中沒有空洞(即表的中間沒有被刪除的行),MyISAM允許在一個進程讀表的同時,另一個進程從表尾插入記錄.這也是MySQL的默認設置.
2 無論MyISAM表中有沒有空洞,都允許在表尾并發插入記錄
使用--low-priority-updates啟用mysqld.這將給所有更新(修改)一個表的語句以比SELECT語句低的優先級.在這種情況下,在先前情形的最后的SELECT語句將在INSERT語句
前執行.MYSQL數據庫
為max_write_lock_count設置一個低值,使得在必定數量的WRITE鎖定后,給出READ鎖定
使用LOW_PRIORITY屬性給于一個特定的INSERT,UPDATE或DELETE較低的優先級
使用HIGH_PRIORITY屬性給于一個特定的SELECT
使用INSERT DELAYED語句MYSQL數據庫
《Mysql應用有關MyISAM引擎的鎖定機制》是否對您有啟發,歡迎查看更多與《Mysql應用有關MyISAM引擎的鎖定機制》相關教程,學精學透。維易PHP學院為您提供精彩教程。