麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > MySQL > 正文

Mysql教程 對MySQL中的鎖機制的總結

2019-09-08 23:27:05
字體:
來源:轉載
供稿:網友

  今天來簡單總結一下MySQL的鎖機制,不妥的歡迎拍磚!

  1、對于MySQL來說,有三種鎖的級別:頁級、表級、行級。

  頁級的典型代表引擎為BDB。

  表級的典型代表引擎為MyISAM,MEMORY以及很久以前的ISAM。

  行級的典型代表引擎為INNODB。

  2、我們實際應用中用的最多的就是行鎖了。

  行級鎖的優點如下:

  1)、當很多連接分別進行不同的查詢時減小LOCK狀態。

  2)、如果出現異常,可以減少數據的丟失。因為一次可以只回滾一行或者幾行少量的數據。

  行級鎖的缺點如下:

  1)、比頁級鎖和表級鎖要占用更多的內存。

  2)、進行查詢時比頁級鎖和表級鎖需要的I/O要多,所以我們經常把行級鎖用在寫操作而不是讀操作。

  3)、容易出現死鎖。

  3、MySQL用寫隊列和讀隊列來實現對數據庫的寫和讀操作。

  對于寫鎖定如下:

  1)、如果表沒有加鎖,那么對其加寫鎖定。

  2)、否則,那么把請求放入寫鎖隊列中。

  對于讀鎖定如下:

  1)、如果表沒有加寫鎖,那么加一個讀鎖。

  2)、否則,那么把請求放到讀鎖隊列中。

  當然我們可以分別用low_priority 以及high_priority在寫和讀操作上來改變這些行為。

  4、下面我來一個簡單的例子解釋上面的說法

  我們來運行一個時間很長的查詢

  1)客戶端1:

  mysql>selectcount(*) from content group by content;

  ...

  客戶端2:

  mysql>updatecontent set content = 'I love you' where id = 444;

  Query OK, 1 row affected (30.68 sec)

  Rows matched: 1 Changed: 1 Warnings: 0

  用了半分鐘。

  2)我們現在終止客戶端1。

  此時客戶端2:

  mysql>updatecontent set content = 'I hate you' where id = 444;

  Query OK, 1 row affected (0.02 sec)

  Rows matched: 1 Changed: 1 Warnings: 0

  僅僅用了20毫秒。

  這個例子很好的說明了讀寫隊列的運行。

  對于1中的客戶端1,此時表沒有加鎖,當然也沒有加寫鎖了,那么此時客戶端1對表加了一個讀鎖。

  對于1中的客戶端2,此時因為表有一個讀鎖,所以把UPDATE請求放到寫鎖定隊列中。

  當讀鎖釋放的時候,也就是SHOW PROCESSLIST中STATUS 為COPY TO TMP TABLE的時候,UPDATE操作開始執行。

  5、可以在REPLICATION中對MASTER 和SLAVE運用不同的鎖定使系統達到最佳的性能。(當然這個前提是SQL語句都是最優的。)

MYSQL

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 99亚洲| 国产成人精品一区二区三区电影 | 91网页 | 亚洲天堂在线电影 | 日韩伦理电影免费观看 | 一区二区三区四区视频在线观看 | 91精品观看91久久久久久国产 | 91成人免费在线视频 | 72pao成人国产永久免费视频 | 欧美在线观看视频一区 | 国产精品久久久久久久亚洲按摩 | 成人短视频在线观看免费 | 羞羞视频免费入口网站 | 涩涩屋av| av噜噜噜噜 | 福利在线免费 | 神马久久蜜桃 | 久久久久久久久浪潮精品 | 免费观看黄视频 | 免费看成年人视频在线 | 成人一级黄色大片 | 国产亚洲精品久久久久久久软件 | 国产精品久久久久久久av | 欧美一级免费高清 | 激情91| 韩国精品久久久 | 免费三级大片 | 色婷婷一区二区三区 | 国产成人精品午夜视频' | 色偷偷一区 | 一级免费看片 | 爱草成年 | sesee99| 粉嫩蜜桃麻豆免费大片 | 最新一区二区三区 | 曰韩在线视频 | av成人在线免费观看 | 日韩视频中文 | 亚洲成人激情在线 | 牛牛热这里只有精品 | 在线观看福利网站 |