一起瞭解瞭解MySQL存儲引擎

前言

在日常生活中文件格式有很多種,並且針對不同的文件格式會有對應不同存儲方式和處理機制(如:.txt、.pdf、.mp4…….)

針對不同的數據應該有對應的不同的處理機制來存儲

存儲引擎就是不同的處理機制

一、MySQL主要存儲引擎:

。Innodb 

。myisam

。memory

。blackhole

下面我們來一一瞭解它們

'''
Innodb
是MySQL5.5版本及之後默認的存儲引擎
存儲數據更加安全
'''
'''
myisam
是MySQL5.5版本之前默認的存儲引擎
速度要比Innodb更快,但我們更加註意的是數據的安全
'''
'''
memory
內存引擎(數據全部存放在內存中)斷電數據及丟失
'''
'''
blackhole
無論存什麼,都會立刻消失(就像黑洞一樣)
'''

查看所有存儲引擎的sql語句:

show engines;

二、實例介紹它們(不同的存儲引擎在存儲表的時候的異同點)

首先我們來單獨建一個數據庫

create database day45

然後切換到該數據庫中

use day45;

分別創建四個不同存儲引擎的四個表

create table t1(id int) engine=innodb;

create table t2(id int) engine=myisam;

create table t3(id int) engine=blackhole;

create table t4(id int) engine=memory;

 

 創建好四個表後你會在data文件下看到四個不同存儲引擎的文件

 t3表之所以沒有t3.MYD表數據文件是因為blackhole存儲引擎就像黑洞一樣,丟一個文件進去就會消失掉,所以不好存儲數據到文件裡

t4表是memory存儲引擎,存儲在內存中,是短暫存儲數據的,不好存儲在硬盤中,因此不存在表數據文件

接下來我們為每個不同存儲引擎的表都插入一條數據,看會有怎樣的結果:

insert into t1 values(1);

insert into t2 values(1);

insert into t3 values(1);

insert into t4 values(1);

 

 可以看到分別查詢每個表的數據時,t3是沒有存儲數據的,因為t3是blackhole存儲引擎,存的數據會立馬丟掉,因此select時不會存在任何數據。實驗不僅僅是進行到現在,當你重啟MySQL再重新查詢每個表的數據時你會有新的發現

 

 很明顯,t4的表中此時也顯示沒有存儲數據,這是為什麼呢?

因為t4引用的是memory存儲引擎,是將數據存儲在內存中的,而不會永久存儲,當關閉MySQL重啟後數據就會丟失

到此這篇關於一起瞭解瞭解MySQL存儲引擎的文章就介紹到這瞭,更多相關MySQL存儲引擎內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: