成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何實現(xiàn)MySQL鎖的優(yōu)化

數(shù)據(jù)庫 MySQL
今天主要向大家描述的是MySQL鎖的實際優(yōu)化過程,假如你對MySQL鎖的實際優(yōu)化的實際操作感興趣的話,你就可以瀏覽以下的文章了。

以下的文章主要介紹的是MySQL鎖的實際優(yōu)化過程,以下就是MySQL鎖的優(yōu)化的具體方案的描述,希望在你今后的學(xué)習(xí)中會有所幫助。我們大家都知道當(dāng)前MySQL已經(jīng)支持 ISAM, MyISAM, MEMORY (HEAP) 類型表的表級鎖了。

BDB 表支持頁級鎖,InnoDB 表支持行級鎖

很多時候,可以通過經(jīng)驗來猜測什么樣的鎖對應(yīng)用程序更合適,不過通常很難說一個MySQL鎖比別的更好,這全都要依據(jù)應(yīng)用程序來決定,不同的地方可能需要不同的鎖。

鎖機(jī)制

當(dāng)前MySQL已經(jīng)支持 ISAM, MyISAM, MEMORY (HEAP) 類型表的表級鎖了,BDB 表支持頁級鎖,InnoDB 表支持行級鎖。很多時候,可以通過經(jīng)驗來猜測什么樣的鎖對應(yīng)用程序更合適,不過通常很難說一個鎖比別的更好,這全都要依據(jù)應(yīng)用程序來決定,不同的地方可能需要不同的鎖。

想要決定是否需要采用一個支持行級鎖的存儲引擎,就要看看應(yīng)用程序都要做什么,其中的查詢、更新語句是怎么用的。例如,很多的web應(yīng)用程序大量的做查詢,很少刪除,主要是基于索引的更新,只往特定的表中插入記錄。采用基本的MySQL MyISAM 表就很合適了。

MySQL中對表級鎖的存儲引擎來說是釋放死鎖的。避免死鎖可以這樣做到:在任何查詢之前先請求鎖,并且按照請求的順序鎖表。

MySQL中用于 WRITE(寫) 的表鎖的實現(xiàn)機(jī)制如下:

如果表沒有加鎖,那么就加一個寫鎖。

否則的話,將請求放到寫鎖隊列中。

MySQL中用于 READ(讀) 的表鎖的實現(xiàn)機(jī)制如下:

如果表沒有加寫鎖,那么就加一個讀MySQL鎖。

否則的話,將請求放到讀鎖隊列中。

當(dāng)鎖釋放后,寫鎖隊列中的線程可以用這個鎖資源,然后才輪到讀鎖隊列中的線程。

這就是說,如果表里有很多更新操作的話,那么 SELECT 必須等到所有的更新都完成了之后才能開始。

從 MySQL 3.23.33 開始,可以通過狀態(tài)變量 Table_locks_waited 和 Table_locks_immediate 來分析系統(tǒng)中的鎖表爭奪情況:

  1. mysql> SHOW STATUS LIKE 'Table%';   
  2. +-----------------------+---------+   
  3. | Variable_name | Value |   
  4. +-----------------------+---------+   
  5. | Table_locks_immediate | 1151552 |   
  6. | Table_locks_waited | 15324 |   
  7. +-----------------------+---------+  

在 MySQL 3.23.7(在Windows上是3.23.25)以后,在 MyISAM 表中只要沒有沖突的 INSERT 操作,就可以無需使用MySQL鎖表自由地并行執(zhí)行 INSERT 和 SELECT 語句。

也就是說,可以在其它客戶端正在讀取 MyISAM 表記錄的同時時插入新記錄。如果數(shù)據(jù)文件的中間沒有空余的磁盤塊的話,就不會發(fā)生沖突了,因為這種情況下所有的新記錄都會寫在數(shù)據(jù)文件的末尾(當(dāng)在表的中間做刪除或者更新操作時,就可能導(dǎo)致空洞)。當(dāng)空洞被新數(shù)據(jù)填充后,并行插入特性就會自動重新被啟用了。

如果想要在一個表上做大量的 INSERT 和 SELECT 操作,但是并行的插入?yún)s不可能時,可以將記錄插入到臨時表中,然后定期將臨時表中的數(shù)據(jù)更新到實際的表里。可以用以下命令實現(xiàn):

 【編輯推薦】

  1. MySQL字符串值的實際應(yīng)用
  2. 用MySQL 數(shù)字類型如何正確的轉(zhuǎn)換函數(shù)
  3. MySQL EXPLAIN語句中的extended 選項介紹
  4. MySQL SHOW INDEX語法的實際應(yīng)用
  5. MySQL 備份和其恢復(fù)機(jī)制原理簡述
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2010-05-26 16:09:09

MySQL Repli

2021-02-22 17:18:35

MySQLSQL行鎖

2019-10-17 09:26:05

MySQL數(shù)據(jù)庫InnoDB

2024-11-29 07:38:12

MySQL數(shù)據(jù)庫

2020-01-16 14:59:32

Java鎖優(yōu)化CAS

2010-06-13 14:39:47

MySQL SQL

2019-08-14 15:08:51

緩存存儲數(shù)據(jù)

2019-11-11 15:33:34

高并發(fā)緩存數(shù)據(jù)

2017-05-16 08:59:16

MVCCMYSQL樂觀鎖

2010-10-08 16:20:35

MySQL語句

2022-07-04 08:01:01

鎖優(yōu)化Java虛擬機(jī)

2024-12-16 00:52:26

MySQL數(shù)據(jù)庫并發(fā)

2022-03-11 09:12:06

MySQLMDL

2021-03-29 09:00:00

Kubernetes容器工具

2023-08-21 19:10:34

Redis分布式

2023-12-06 07:33:20

MySQL鎖事間隙鎖

2010-05-26 14:06:44

MySQL查詢

2010-05-20 13:22:32

2024-07-29 09:57:47

2022-10-21 09:01:33

小組件iOS
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 免费观看黄a一级视频 | 99re在线视频免费观看 | 欧美电影免费网站 | 日日想夜夜操 | 四虎影视免费观看 | 亚洲精品中文字幕在线 | 成人国产精品久久久 | 影音先锋久久 | 欧美日韩国产一区 | 精品国产一区二区国模嫣然 | 九九在线视频 | av日韩精品| 精品欧美乱码久久久久久1区2区 | 伊色综合久久之综合久久 | 欧美中文字幕一区二区 | 欧美日韩国产三级 | 日本精品一区二区三区在线观看 | 国产成年人小视频 | 国产精品高潮呻吟久久 | a级性视频 | 日韩免费在线视频 | 中文字幕日韩欧美一区二区三区 | 久久精品无码一区二区三区 | 欧美综合久久 | 精品欧美一区二区在线观看视频 | www国产亚洲精品久久网站 | 亚洲乱码一区二区三区在线观看 | 日韩一区二区在线视频 | 日韩一级 | 国产一区二区日韩 | 综合在线视频 | 色在线视频网站 | 81精品国产乱码久久久久久 | 亚洲传媒在线 | k8久久久一区二区三区 | 亚洲欧美日韩精品久久亚洲区 | 电影91久久久 | 亚洲一区三区在线观看 | 国产精品久久久久久久久久久久 | 人人鲁人人莫人人爱精品 | 亚洲欧美第一视频 |