9-1 課程回顧
9-2 存儲引擎簡介
(1)MySQL可以將數據以不同的技術存儲在文件(內存)中,這種技術就成爲存儲引擎。 每種存數引擎使用不同的存儲機制、索引技巧、鎖定水平,最終提供廣泛且不同的功能。
(2)使用不同的存儲引擎也可以說不同類型的表
(3)MySQL支持的存儲引擎
- MyISAM
- InnoDB
- Memory
- CSV
- Archive
9-3 相關知識點之併發處理
併發控制
當多個連接對記錄進行修改時保證數據的一致性和完整性。
系統使用鎖系統來解決這個併發控制,這種鎖分爲:
- 共享鎖(讀鎖)---在同一時間內,多個用戶可以讀取同一個資源,讀取過程中數據不會發生任何變化。
- 排他鎖(寫鎖)---在任何時候只能有一個用戶寫入資源,當進行寫鎖時會阻塞其他的讀鎖或者寫鎖操作。
鎖的力度(也叫鎖的顆粒)
鎖顆粒(鎖定時的單位)
---表鎖,是一種開銷最小的鎖策略。得到數據表的寫鎖
---行鎖,是一種開銷最大的鎖策略。並行性最大
表鎖的開銷最小,因爲使用鎖的個數最小,行鎖的開銷最大,因爲可能使用鎖的個數比較多。
9-4 相關知識點之事務處理
事務處理:整個過程每一個單元全部完成纔算事務處理成功,某一個單元失敗事務就會回滾.
主要作用:保證數據庫的完整性
事務的特性: 原子性、一致性、隔離性、持久性 簡稱:A(Atomic)C(Consistency)I(Isolation)D(Durable)
9-5 相關知識點之外鍵和索引
1.外鍵:是保證數據一致性的策略。
2.索引:是對數據表中一列或者多列的值進行排序的一種結構。使用索引可以快速訪問數據表的特定信息。索引是進行記錄快速定位的一種方法。索引好比目錄。索引可以劃分爲:普通索引、唯一索引、全文索引。
3.各種存儲引擎的特點 (如圖):
9-6 各個存儲引擎特點
- Memory的存儲限制是由內存的大小來決定。
索引:普通索引、唯一索引、全文索引、btree索引、hash索引……
- CSV存儲引擎不支持索引。
- BlackHole:黑洞引擎,寫入的數據都會消失,一般用做數據複製的中繼。
使用最廣泛的兩種存儲引擎:MyISAM/InnoDB
- MyISAM:適用於事務的處理不多的情況。
- InnoDB:適用於事務處理比較多,需要有外鍵支持的情況。
9-7 設置存儲引擎
(1)通過修改MySQL配置文件實現
- default-storage-engine = engine
(2)通過創建數據表命令來實現
CREATE TABLE tbl_name(
... ...
) ENGINE = engine;
(3)通過修改數據表命令實現
ALTER TABLE tbl_name ENGINE [=] engine_name;