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

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

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知識。




主站蜘蛛池模板: 日韩国产欧美精品综合二区 | 香蕉成人福利片视频在线下载 | 手机在线日韩高清理论片 | 婷婷综合缴情亚洲五月伊 | 中文天堂最新版www官网在线 | 五月天激情婷婷大综合 | 日本免费在线 | 日本黄色福利视频 | 深夜福利免费视频 | 日本系列第一页 | 在线另类视频 | 日本免费网 | 下克上动漫第一集 | 欧美最猛性xxxxx(亚洲精品) | 日韩美视频网站 | 色婷婷丁香六月 | 无码中文av有码中文av | 日本亚洲欧洲高清有码在线播放 | 伊人久久大香线蕉资源 | 日本一区二区免费看 | 亚洲天堂欧美 | 五月婷婷深爱五月 | 亚欧洲精品bb | 天天干天天干天天色 | 日本wwwxxx| 欧美午夜免费看爽爽爽 | 天天色综合色 | 手机看片99 | 伊人干| 一区二区三区视频网站 | 亚洲欧美在线免费观看 | 天狼影院伦理片在线bd观看 | 我要操影院 | 午夜视频网站在线观看 | 日本夜夜夜 | 亚洲国产系列久久精品99人人 | 中文成人在线视频 | 欧美亚洲国产一区二区 | 午夜影院毛片 | 日韩成人邪恶影片 | 视频在线观看免费网址 |