前言
在日常生活中文件格式有很多種,并且針對不同的文件格式會有對應不同存儲方式和處理機制(如:.txt、.pdf、.mp4.......)
針對不同的數據應該有對應的不同的處理機制來存儲
存儲引擎就是不同的處理機制
一、mysql主要存儲引擎:
。innodb
。myisam
。memory
。blackhole
下面我們來一一了解它們
1
2
3
4
5
|
'' ' innodb 是mysql5.5版本及之后默認的存儲引擎 存儲數據更加安全 ' '' |
1
2
3
4
5
|
'' ' myisam 是mysql5.5版本之前默認的存儲引擎 速度要比innodb更快,但我們更加注意的是數據的安全 ' '' |
1
2
3
4
|
'' ' memory 內存引擎(數據全部存放在內存中)斷電數據及丟失 ' '' |
1
2
3
4
|
'' ' blackhole 無論存什么,都會立刻消失(就像黑洞一樣) ' '' |
查看所有存儲引擎的sql語句:
1
|
show engines; |
二、實例介紹它們(不同的存儲引擎在存儲表的時候的異同點)
首先我們來單獨建一個數據庫
1
|
create database day45 |
然后切換到該數據庫中
1
|
use day45; |
分別創建四個不同存儲引擎的四個表
1
2
3
4
5
6
7
|
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存儲引擎,存儲在內存中,是短暫存儲數據的,不好存儲在硬盤中,因此不存在表數據文件
接下來我們為每個不同存儲引擎的表都插入一條數據,看會有怎樣的結果:
1
2
3
4
5
6
7
|
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存儲引擎內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/m0_51734025/article/details/121757666