鎖:主要作用是管理共享資源的併發訪問,還可以用於實現事務的隔離性。
鎖的型別:
共享鎖(也稱讀鎖)
獨佔鎖(也稱寫鎖)
阻塞:乙個事務中的鎖需要等待另乙個事務中的鎖釋放所占用的資源,這樣會形成阻塞。
死鎖:兩個及以上事務在執行過程中相互占用了對方等待的資源而產生的異常
資料庫系統會在死鎖的事務中,找到乙個占用資源最少的事務進行回滾操作,從而自動解決死鎖。
myisam
mysql5.5 之前版本預設儲存引擎。其特性有:
1.併發性與鎖級別:使用的是表級鎖,對其修改需要加鎖,讀寫也需要加共享鎖。
2.表損壞修復:對意外關閉的表可以進行檢查和修復,並不是事務恢復,所以可能引起資料丟失。
check table tablename
repair table tablename
3.myisam表支援資料壓縮
適用場景:
1. 非事務型應用
2. 唯讀類應用:共享鎖之間不會被阻塞
3.空間類應用:例如gps資料等的計算
innodb
mysql5.5 及之後版本預設儲存引擎。其特性有:
1.支援事務,完全支援事務的acid特性
為了實現事務的原子性,一致性,永續性,innodb 使用了兩個日誌型別來實現:redo log(永續性) 和 undo log
2.有自己的表空間
3.支援行級鎖,執行寫操作時需要的資源更好,可以最大程度的支援併發,其行級鎖是由儲存引擎層實現的
還有很多別的儲存引擎,例如等:
csv: 可以將csv檔案作為mysql表來處理。
archive:可以對錶資料進行壓縮
MySQL資料庫常用儲存引擎
資料庫儲存引擎 是資料庫底層軟體組織,資料庫管理系統 dbms 使用資料引擎進行建立 查詢 更新和刪除資料。不同的儲存引擎提供不同的儲存機制 索引技巧 鎖定水平等功能,使用不同的儲存引擎,還可以獲得特定的功能。現在許多不同的資料庫管理系統都支援多種不同的資料引擎。mysql的核心就是外掛程式式儲存引...
資料庫儲存引擎
mysql中提到了儲存引擎這個概念。簡而言之,儲存引擎就是表的型別。資料庫的儲存引擎決定了表在計算機中的儲存方式。show engines語句可以檢視mysql資料庫支援的儲存引擎。innodb儲存引擎給mysql的表提供了事物,回滾,崩潰修復和多版本併發控制的事物安全。innodb是mysql上第...
資料庫儲存引擎
儲存引擎 處理表的處理器 1 基本操作 1 檢視所有的儲存引擎 show engines 2 檢視已有表的儲存引擎 show create table 表名 engine innodb 3 建立表時指定儲存引擎 create table 表名 engine myisam 4 工作中常用儲存引擎 in...