MySql中鎖與索引的注意點


1.索引:

聚集索引(主鍵索引)

聚集索引(非主鍵索引)

覆蓋索引多字段索引)

 

2.鎖:

 

種類:讀鎖(共享鎖)、寫鎖(排他鎖)、更新鎖、樂觀鎖、悲觀鎖

級別:頁級、表級、行級

3.MySql中鎖與索引的關系

 

  MyISAM 操作數據都是使用表級鎖,MyISAM總是一次性獲得所需的全部鎖,要么全部滿足,要么全部等待。所以不會產生死鎖,但是由於每操作一條記錄就要鎖定整個表,導致性能較低,並發不高。

  InnoDB 與 MyISAM 的最大不同有兩點:一是 InnoDB 支持事務;二是 InnoDB 采用了行級鎖。也就是你需要修改哪行,就可以只鎖定哪行。

  Mysql中,行級鎖並不是直接鎖記錄,而是鎖索引。InnoDB 行鎖是通過給索引項加鎖實現的,索引分為主鍵索引和非主鍵索引兩種,如果一條sql 語句操作了主鍵索引,Mysql 就會鎖定這條主鍵索引;如果一條語句操作了非主鍵索引,MySQL會先鎖定該非主鍵索引,再鎖定相關的主鍵索引。如果沒有索引,InnoDB 會通過隱藏的聚簇索引來對記錄加鎖。也就是說:如果不通過索引條件檢索數據,那么InnoDB將對表中所有數據加鎖,實際效果跟表級鎖一樣。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM