一起了解了解MySQL存儲(chǔ)引擎
前言
在日常生活中文件格式有很多種,并且針對(duì)不同的文件格式會(huì)有對(duì)應(yīng)不同存儲(chǔ)方式和處理機(jī)制(如:.txt、.pdf、.mp4.......)
針對(duì)不同的數(shù)據(jù)應(yīng)該有對(duì)應(yīng)的不同的處理機(jī)制來(lái)存儲(chǔ)
存儲(chǔ)引擎就是不同的處理機(jī)制
一、MySQL主要存儲(chǔ)引擎:
。Innodb?
。myisam
。memory
。blackhole
下面我們來(lái)一一了解它們
''' Innodb 是MySQL5.5版本及之后默認(rèn)的存儲(chǔ)引擎 存儲(chǔ)數(shù)據(jù)更加安全 '''
''' myisam 是MySQL5.5版本之前默認(rèn)的存儲(chǔ)引擎 速度要比Innodb更快,但我們更加注意的是數(shù)據(jù)的安全 '''
''' memory 內(nèi)存引擎(數(shù)據(jù)全部存放在內(nèi)存中)斷電數(shù)據(jù)及丟失 '''
''' blackhole 無(wú)論存什么,都會(huì)立刻消失(就像黑洞一樣) '''
查看所有存儲(chǔ)引擎的sql語(yǔ)句:
show engines;
二、實(shí)例介紹它們(不同的存儲(chǔ)引擎在存儲(chǔ)表的時(shí)候的異同點(diǎn))
首先我們來(lái)單獨(dú)建一個(gè)數(shù)據(jù)庫(kù)
create database day45
然后切換到該數(shù)據(jù)庫(kù)中
use day45;
分別創(chuàng)建四個(gè)不同存儲(chǔ)引擎的四個(gè)表
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;
?
?創(chuàng)建好四個(gè)表后你會(huì)在data文件下看到四個(gè)不同存儲(chǔ)引擎的文件

?t3表之所以沒(méi)有t3.MYD表數(shù)據(jù)文件是因?yàn)閎lackhole存儲(chǔ)引擎就像黑洞一樣,丟一個(gè)文件進(jìn)去就會(huì)消失掉,所以不好存儲(chǔ)數(shù)據(jù)到文件里
t4表是memory存儲(chǔ)引擎,存儲(chǔ)在內(nèi)存中,是短暫存儲(chǔ)數(shù)據(jù)的,不好存儲(chǔ)在硬盤(pán)中,因此不存在表數(shù)據(jù)文件
接下來(lái)我們?yōu)槊總€(gè)不同存儲(chǔ)引擎的表都插入一條數(shù)據(jù),看會(huì)有怎樣的結(jié)果:
insert into t1 values(1); insert into t2 values(1); insert into t3 values(1); insert into t4 values(1);
?
?可以看到分別查詢每個(gè)表的數(shù)據(jù)時(shí),t3是沒(méi)有存儲(chǔ)數(shù)據(jù)的,因?yàn)閠3是blackhole存儲(chǔ)引擎,存的數(shù)據(jù)會(huì)立馬丟掉,因此select時(shí)不會(huì)存在任何數(shù)據(jù)。實(shí)驗(yàn)不僅僅是進(jìn)行到現(xiàn)在,當(dāng)你重啟MySQL再重新查詢每個(gè)表的數(shù)據(jù)時(shí)你會(huì)有新的發(fā)現(xiàn)

?
?很明顯,t4的表中此時(shí)也顯示沒(méi)有存儲(chǔ)數(shù)據(jù),這是為什么呢?
因?yàn)閠4引用的是memory存儲(chǔ)引擎,是將數(shù)據(jù)存儲(chǔ)在內(nèi)存中的,而不會(huì)永久存儲(chǔ),當(dāng)關(guān)閉MySQL重啟后數(shù)據(jù)就會(huì)丟失
到此這篇關(guān)于一起了解了解MySQL存儲(chǔ)引擎的文章就介紹到這了,更多相關(guān)MySQL存儲(chǔ)引擎內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL數(shù)據(jù)權(quán)限的實(shí)現(xiàn)詳情
這篇文章主要介紹了MySQL數(shù)據(jù)權(quán)限的實(shí)現(xiàn)詳情,文章通過(guò)實(shí)際案例,從代碼實(shí)戰(zhàn)的角度來(lái)實(shí)現(xiàn)這樣的一個(gè)數(shù)據(jù)權(quán)限。具體詳細(xì)介紹,具有一定的參考價(jià)值2022-08-08
MySql 5.7.17壓縮包免安裝的配置過(guò)程圖解
這篇文章主要介紹了MySql 5.7.17壓縮包免安裝的配置過(guò)程圖解,本文圖文并茂給大家介紹的非常詳細(xì),感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧2018-05-05
navicat連接Mysql數(shù)據(jù)庫(kù)報(bào)2013錯(cuò)誤解決辦法
這篇文章主要介紹了navicat連接Mysql數(shù)據(jù)庫(kù)報(bào)2013錯(cuò)誤的解決辦法,首先檢查MySQL是否安裝成功,然后修改配置文件,添加或注釋掉特定行,最后連接進(jìn)入MySQL服務(wù)并執(zhí)行授權(quán)命令,需要的朋友可以參考下2025-02-02
MySQL學(xué)習(xí)第二天 安裝和配置mysql winx64
MySQL學(xué)習(xí)第二天,主要為大家詳細(xì)介紹了在Windows 64位操作系統(tǒng)下安裝和配置MySQL的具體步驟,整理一份mysql winx64安裝配置方法教程,感興趣的小伙伴們可以參考一下2016-05-05
MySql 5.7.17 winx64的安裝配置詳細(xì)教程
這篇文章主要介紹了MySql 5.7.17 winx64的安裝配置教程,初始化數(shù)據(jù)庫(kù)、配置相關(guān)信息的方法在本文中介紹的非常詳細(xì),需要的朋友參考下2017-01-01
windows下安裝、卸載mysql服務(wù)的方法(mysql 5.6 zip解壓版安裝教程)
這篇文章主要介紹了windows下安裝、卸載mysql服務(wù)的方法(zip解壓版安裝),需要的朋友可以參考下2016-06-06
MySQL一次性創(chuàng)建表格存儲(chǔ)過(guò)程實(shí)戰(zhàn)
這篇文章主要介紹了MySQL一次性創(chuàng)建表格存儲(chǔ)過(guò)程實(shí)戰(zhàn),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-07-07
安裝mysql出錯(cuò)”A Windows service with the name MySQL already exis
這篇文章主要介紹了安裝mysql出錯(cuò)”A Windows service with the name MySQL already exists.“如何解決的相關(guān)資料,在日常項(xiàng)目中此問(wèn)題比較多見(jiàn),特此把解決辦法分享給大家,供大家參考2016-05-05
MySQL判斷列的值既不為NULL又不為空字符串的問(wèn)題
這篇文章主要介紹了MySQL判斷列的值既不為NULL又不為空字符串的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08

