1. 程式人生 > 其它 >mysql之儲存引擎

mysql之儲存引擎

目錄

儲存引擎

儲存引擎可以簡單的理解為:儲存引擎就是處理資料底層邏輯,不同的引擎底層處理方式不同。

如何查詢儲存引擎資訊

命令: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;