存儲引擎
MySQL可以将資料以不同的技術存儲在檔案(記憶體)中,這種技術就稱為存儲引擎
每一種存儲引擎使用不同的存儲機制,索引技巧,鎖定水準,最終提供廣泛且不同的功能
MySQL支援的存儲引擎
MyISAM、InnoDB、Memory、CSV、Archive
并發控制
當多個連接配接對記錄進行修改時保證資料的一緻性和完整性。系統使用鎖系統來解決這個并發控制,這種鎖分為:
鎖
共享鎖(讀鎖):在同一時間内,多個使用者可以讀取同一個資源,讀取過程中資料不會發生任何變化。
排他鎖(寫鎖):在任何時候隻能有一個使用者寫入資源,當進行寫鎖時會阻塞其他的讀鎖或者寫鎖操作。
鎖的力度(鎖的顆粒:鎖定時的機關):
表鎖,是一種開銷最小的鎖政策。得到資料表的寫鎖(禁止其他使用者進行讀寫,隻能有一個鎖)
行鎖,是一種開銷最大的鎖政策。并行性最大(有多少條記錄,就有可能對每條記錄都進行鎖)
表鎖的開銷最小,因為使用鎖的個數最小,行鎖的開銷最大,因為可能使用鎖的個數比較多
事務的特 性
原子性(Atomicity)
一緻性(Consistency)
隔離性(Isolation)
持久性(Durability)
外鍵
保證資料一緻性的政策
索引
是對資料表中一列或多列的值進行排序的一種結構
修改存儲引擎的方法
(1)通過修改MySQL配置檔案實作
default-storage-engine=INNODB
(2)通過建立資料表指令實作
CREATE TABLE table_name(
...
)
ENGINE = engine;
(3)通過修改資料表指令實作
ALTER TABLE table_name ENGINE [=] engine_name;
主要知識點
MyISAM:存儲限制可達256TB,支援索引,表級鎖定,資料壓縮
InnoDB:存儲限制為64TB,支援事務和索引,鎖顆粒為行鎖