MySQL基礎班第四天(儲存引擎)
阿新 • • 發佈:2022-03-08
儲存引擎
-
MySQL體系結構
-
儲存引擎介紹
-
儲存引擎特點
-
儲存引擎選擇
-
MySQL體系結構
-
連線層
- 最上層是一些客戶端和連結服務,主要完成一些類似於連線處理、 授權認證、及相關的安全方案。伺服器也會為安全接入的每個客戶端驗證它所具有的操作許可權。
-
服務層
- 第二層架構主要完成大多數的核心服務功能,如SQL介面,並完成快取的查詢, SQL的分析和優化,部分內建函式的執行。所有跨儲存引擎的功能也在這一層實現,如過程、函式等。
-
引擎層
- 儲存引擎真正的負責了MySQL中資料的儲存和提取,伺服器通過API和儲存引擎進行通訊。不同的儲存引擎具有不同的功能,這樣我們可以根據自己的需要,來選取合適的儲存引擎。
-
儲存層
- 主要是將資料儲存在檔案系統之上,並完成與儲存引擎的互動。
-
儲存引擎
-
儲存引擎簡介:儲存引擎就是儲存資料、建立索引、更新/查詢資料等技術的實現方式。儲存引擎是基於表的,而不是基於庫的,所以儲存引擎也可被稱為表型別。
1、在建立表時,指定儲存引擎 CREATE TABLE 表名( 欄位1 欄位1型別[COMMENT 欄位1註釋], ......, 欄位n 欄位n型別[COMMENT 欄位n註釋], )ENGINE = INNODB [COMMENT 表註釋]; 2、查詢當前資料庫支援的儲存引擎 SHOW ENGINES;
-
-
儲存引擎特點
-
InnoDB
-
介紹:InnoDB是一種兼顧高可靠性和高效能的通用儲存引擎,在MySQL 5.5之後, InnoDB是預設的MySQL儲存引擎。
-
-
特點
- DML操作遵循ACID模型,支援事務;
- 行級鎖,提高併發訪問效能;
- 支援外來鍵FOREIGN KEY約束,保證資料的完整性和正確性;
-
檔案
-
xxx.ibd: xxx代表的是表名,innoDB引擎的每張表都會對應這樣一個表空間檔案, 儲存該表的表結構(frm、 sdi) 、 資料和索引。 引數: innodb_file_ per _table
-
InnoDB ( 邏輯儲存結構 )
-
MyISAM
-
介紹:MyISAM是MySQL早期的預設儲存引擎。
-
特點
-
不支援事務,不支援外來鍵
-
支援表鎖,不支援行鎖
-
訪問速度快
-
-
檔案格式
- xxx.sdi: 儲存表結構資訊
- xxx.MYD: 儲存資料
- xxx.MYI:儲存索引
-
-
Memory
- 介紹:Memory引擎的表資料時儲存在記憶體中的,由於受到硬體問題、或斷電問題的影響,只能將這些表作為臨時表或快取使用。
- 特點
- 記憶體存放
- hash索引(預設)
- 檔案
- xxx.sdi: 儲存表結構資訊
-
三大常用引擎區別
-
儲存引擎選擇
-
介紹:在選擇儲存引擎時,應該根據應用系統的特點選擇合適的儲存引擎。對於複雜的應用系統,還可以根據實際情況選擇多種儲存引擎進行組
-
InnoDB:是MySQL的預設儲存引擎,支援事務、外來鍵。如果應用對事務的完整性有比較高的要求,在併發條件下要求資料的一致性,資料操作除了插入和查詢之外,還包含很多的更新、刪除操作,那麼InnoDB儲存引擎是比較合適的選擇。
-
MyISAM:如果應用是以讀操作和插入操作為主,只有很少的更新和刪除操作,並且對事務的完整性、併發性要求不是很高,那麼選擇這個儲存引擎是非常合適的。
-
Memory:將所有資料儲存在記憶體中,訪問速度快,通常用於臨時表及快取。Memory的缺陷就是對錶的大小有限制,太大的表無法快取在記憶體中,而且無法保障資料的安全性。
-