一起瞭解瞭解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!