mysql之儲存引擎
阿新 • • 發佈:2022-01-24
目錄
儲存引擎
儲存引擎可以簡單的理解為:儲存引擎就是處理資料底層邏輯,不同的引擎底層處理方式不同。
如何查詢儲存引擎資訊
命令:show engines;
常見的儲存引擎
1、MyISAM 是MySQL5.5版本之前預設的儲存引擎。 該引擎存取資料的速度都很快 但是安全性較低 不支援很多額外的功能 2、InnoDB 是MySQL5.5版本之後預設的儲存引擎 該引擎支援: 事務(時間回退功能)、 行級鎖(相當於併發程式設計的互斥鎖 只能有一個使用者操作同一條資料)、 外來鍵(建立表與表之間的關係) 儲存資料的速度沒有MyISAM快但是功能和安全性更高 3、memory 資料全部儲存在記憶體中 速度很快但是斷電立刻丟失 4、blackhole 黑洞 任何放入其中的資料都會消失(類似於垃圾處理站)
驗證儲存引擎之間的差異
補充:
建立表時可以指定儲存引擎:
格式: create table t3(id int) engine=儲存引擎;
驗證:
1、建立4個不同引擎的表
create table t1(id int) engine=MyISAM; # 大小寫是無所謂的。
create table t2(id int) engine=InnoDB;
create table t3(id int) engine=memory;
create table t4(id int) engine=blackhole;
檢視不同的引擎創建出來的表有什麼不同
解釋各自檔案字尾名
MyISAM 三個檔案:
.frm 表結構
.MYD 表資料
.MYI 表索引 # 根據索引更加快速的找到想要的資料
InnoDB 兩個檔案:
.frm 表結構
.ibd 資料與索引 # 速度相較於MyISAM相對較慢一點
memory :存在記憶體中所以只需要表的結構
.frm
blackhole :根本不需要存
.frm
插入資料演示
insert into t1 values(1); insert into t2 values(2); insert into t3 values(3); insert into t4 values(4); # 檢視資料儲存情況: select * from t1; select * from t2; select * from t3; select * from t4;
驗證:
memory引擎是否將資料儲存於記憶體中
重新以管理員身份啟動cmd視窗:
net stop mysql;
net start mysql;
再次檢視:
select * from t3;