欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql 加鎖之后查詢,mysql數(shù)據(jù)庫truncate的鎖機制是什么

林玟書2年前27瀏覽0評論
mysql 加鎖之后查詢,mysql數(shù)據(jù)庫truncate的鎖機制是什么?

1鎖機制 當前MySQL已經(jīng)支持ISAM,MyISAM,MEMORY(HEAP)類型表的表級鎖了,BDB表支持頁級鎖,InnoDB表支持行級鎖。很多時候,可以通過經(jīng)驗來猜測什么樣的鎖對應(yīng)用程序更合適,不過通常很難說一個鎖比別的更好,這全都要依據(jù)應(yīng)用程序來決定,不同的地方可能需要不同的鎖。 想要決定是否需要采用一個支持行級鎖的存儲引擎,就要看看應(yīng)用程序都要做什么,其中的查詢、更新語句是怎么用的。例如,很多的web應(yīng)用程序大量的做查詢,很少刪除,主要是基于索引的更新,只往特定的表中插入記錄。采用基本的MySQLMyISAM表就很合適了。 MySQL中對表級鎖的存儲引擎來說是釋放死鎖的。避免死鎖可以這樣做到:在任何查詢之前先請求鎖,并且按照請求的順序鎖表。 MySQL中用于WRITE(寫)的表鎖的實現(xiàn)機制如下: 如果表沒有加鎖,那么就加一個寫鎖。 否則的話,將請求放到寫鎖隊列中。 MySQL中用于READ(讀)的表鎖的實現(xiàn)機制如下: 如果表沒有加寫鎖,那么就加一個讀鎖。 否則的話,將請求放到讀鎖隊列中。 當鎖釋放后,寫鎖隊列中的線程可以用這個鎖資源,然后才輪到讀鎖隊列中的線程。 這就是說,如果表里有很多更新操作的話,那么SELECT必須等到所有的更新都完成了之后才能開始。 從MySQL3.23.33開始,可以通過狀態(tài)變量Table_locks_waited和Table_locks_immediate來分析系統(tǒng)中的鎖表爭奪情況: mysql>SHOWSTATUSLIKE'Table%'; +-----------------------+---------+ |Variable_name|Value| +-----------------------+---------+ |Table_locks_immediate|1151552| |Table_locks_waited|15324| +-----------------------+---------+