六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

mysql鎖與索引之間的聯系

[摘要]在平時我們用mysql的鎖時,一般剛接觸數據庫是很少考慮鎖的效率,一般只求到達防止并發的目的就可以了,但是隨著數據量的增大我們就會發現有很多sql我們已經寫的非常優化了,但是有時候還是很慢,很難找到...
在平時我們用mysql的鎖時,一般剛接觸數據庫是很少考慮鎖的效率,一般只求到達防止并發的目的就可以了,但是隨著數據量的增大我們就會發現有很多sql我們已經寫的非常優化了,但是有時候還是很慢,很難找到原因,這時候我們就應該考慮一下是不是mysql的鎖在導致的。

我們首先建立一個新的數據表:

mysql鎖和索引之間的聯系

這里我們的主鍵默認是有索引的;這邊加幾條數據

mysql鎖和索引之間的聯系

然后我們開兩個進程進行測試:

mysql鎖和索引之間的聯系

先加一個where條件沒有涉及到索引的鎖:

mysql鎖和索引之間的聯系

然后我們在第二個窗口進行一個更新這一行的數據,我們會發現這個操作會被卡著,

mysql鎖和索引之間的聯系

mysql鎖和索引之間的聯系

然后我們提交事務會發現第二個窗口的數據會立馬執行,

從上面來看似乎沒有任何問題,這樣確實達到了我們想要的目的,但是你可以再加同樣的鎖,試著更新下其他的數據比如我下面執行的數據:mysql鎖和索引之間的聯系

上面的三種情況都是我用同樣的流程測試的,他們都會被卡住,這樣問題就來了,我們其實在鎖住name='測試姓名'的時候或許只是想鎖住id=133和id=134兩行,我們并不想鎖住135,136,137,但是這三行我們也訪問不了,因為我們的鎖是一個表鎖,我們來試一下另一種用鎖時用到索引的情況:

mysql鎖和索引之間的聯系

上面用鎖時用到了索引,但是我們在更新數據時還是被卡住了;這里我們就會覺得索引其實也沒什么用,但是你遇到同樣的鎖,更新數據時也用到索引是可以看一下效果:

mysql鎖和索引之間的聯系

我們會發現這個沒有被鎖卡住,直接更新了;

下面總結一下:如果我們的鎖用到索引就是行鎖,如果沒有用到索引就是表鎖,但是我們操作的數據必須用到鎖才行;

下面我們來說一下為什么會這樣:

首先我們知道如果沒有建立索引的話我們在進行數據選取或者定位的時候是通過全表掃描的形式來進行的,這樣就會形成表鎖,要是有索引的話就會直接定位到指定的行,就是形成行鎖,但是要注意你在更新數據是假如沒用到索引也會全表掃描,當掃到被鎖的這一行是也會被鎖住,所以達不到想要的效果;

相關推薦:

mysql的鎖機制_MySQL

MySQL鎖的用法之表級鎖

如何實現MySQL鎖的優化

以上就是mysql鎖和索引之間的聯系的詳細內容,更多請關注php中文網其它相關文章!


學習教程快速掌握從入門到精通的SQL知識。




主站蜘蛛池模板: 色视频线观看在线播放 | 青草草在线 | 日韩伦理一区二区三区 | 日韩美女在线看免费观看 | 天堂网2017 | 天天躁日日躁 疯人影院 | 色偷偷亚洲女性天堂 | 色站综合| 日本在线观看视频 | 欧美一级久久久久久久大片 | 午夜性刺激免费视频观看不卡专区 | 最近中文字幕无吗高清免费视频 | 欧美特黄视频在线观看 | 日本男女动态图 | 视频二区 调教中字 知名国产 | 亚洲成a人一区二区三区 | 青草久草| 欧美伊人久久久久久久久影院 | 日本激情在线观看 | 手机成人| 日韩性视频 | 四虎伊人 | 亚州综合 | 色呦呦在线观看视频 | 全部免费毛片免费播放 | 午夜在线免费观看 | 天天干夜夜骑 | 日日夜夜人人 | 五月婷婷婷 | 欧美首页 | 片在线观看 | 欧美在线观看不卡 | 欧美亚洲国产专区在线app | 人妖欧美一区二区三区四区 | 日本不卡在线视频高清免费 | 日本三级香港三级国产三级 | 最新欧美精品一区二区三区不卡 | 亚洲成a人片在线观看播放 亚洲成a人片在线观看www | 伊人久久精品成人网 | 四虎在线免费 | 午夜影院在线 |