資料庫儲存引擎是資料庫底層軟體元件,資料庫管理系統使用資料引擎進行建立、查詢、更新和刪除資料操作。
簡而言之,儲存引擎就是指表的型別。資料庫的儲存引擎決定了表在計算機中的儲存方式。
不同的儲存引擎提供不同的儲存機制、索引技巧、鎖定水平等功能,使用不同的儲存引擎還可以獲得特定的功能。
1、展示所有的儲存引擎:
show engines;
--展示mysql(5.7)支援的所有的儲存引擎。
其中support 列的值表示某種引擎是否能使用,yes表示可以使用,no表示不能使用,default表示該引擎為當前預設的儲存引擎。下面簡要描寫幾種儲存引擎,後面會對其中的幾種(主要是 innodb 和 myisam )進行詳細講解。
像 ndb 這樣的需要更多擴充套件性的討論,這超出了本教程的介紹範疇,所以在教程後面對它們不會介紹太多。
mysql 的儲存引擎介紹:
儲存引擎
描述archive
用於資料存檔的引擎,資料被插入後就不能在修改了,且不支援索引。
csv在儲存資料時,會以逗號作為資料項之間的分隔符。
blackhole
會丟棄寫操作,該操作會返回空內容。
federated
將資料儲存在遠端資料庫中,用來訪問遠端表的儲存引擎。
innodb
具備外來鍵支援功能的事務處理引擎
memory
置於記憶體的表
merge
用來管理由多個 myisam 表構成的表集合
myisam
主要的非事務處理儲存引擎
ndbmysql 集群專用儲存引擎
有幾種儲存引擎的名字還有同義詞;
例如,mrg_myisam 和 ndbcluster 分別是 merge 和 ndb 的同義詞。
儲存引擎 memory 和 innodb 在早期分別稱為 heap 和 innobase。雖然後面兩個名字仍能被識別,但是已經被廢棄了。
myisam
myisam 儲存引擎的資料表在資料庫目錄裡使用 3 個檔案來代表,這些檔案的基本名與資料表的名字相同,副檔名則表明了檔案的具體用途。這三個檔案的副檔名分別是:
.frm:表結構定義檔案,存放著該資料表的結構定義。
.myd:my data 的縮寫,資料檔案,存放著該資料表中各個行的資料。
.myi: my index 的縮寫,索引檔案,存放著該資料表的全部索引資訊。
案例:建立乙個簡單地使用myisam儲存引擎建立的表;
create
table
`ta_mylsam`
(`id`
int(10)
unsigned
notnull
auto_increment
comment
'自增id編號'
,`name`
varchar
(255
)default
null
comment
'姓名'
修改表的儲存引擎具體語句如下:
alter
table ta_mylsam engine
=innodb
;
注意:myisam與innodb其中的乙個區別:myisam支援gis資料,innodb不支援。
即myisam支援以下空間資料物件:point,line,polygon,su***ce等。
merge(merge)
merge 儲存引擎的資料表其實是乙個邏輯結構。它代表著由一組結構完全相同的 myisam 資料表所構成的集合。有關的查詢命令會把它當作乙個大資料表來對待。
merge 儲存引擎的資料表除了擁有儲存表結構定義的 .frm 檔案以外,還有乙個擴充套件名為 .mgr 的檔案,這個檔案裡不儲存資料,而是資料的**地。通俗的說,就是乙份由多個 myisam 資料表的名單構成的 merge 資料表。
innodb
對於 innodb 儲存引擎的資料表,乙個表對應兩個檔案,乙個是 *.frm,儲存表結構資訊;乙個是 *.ibd,儲存表中資料。
memory
memory 儲存引擎的資料表是建立在記憶體中的資料表。因為 mysql 伺服器把 memory 資料表的資料和索引都存放在了記憶體中而不是硬碟上,所以除了相應的 .frm 檔案外,memory 引擎表在檔案系統裡沒有其它相應的代表檔案。
archive
archive 儲存引擎的資料表除了擁有 .frm 表結構定義檔案外,還有乙個擴充套件名為 .arz 的資料檔案,用來儲存歷史歸檔資料。執行優化操作時可能還會出現乙個擴充套件名為 .arn 的檔案。
csv與其它型別的儲存引擎相同,csv 引擎表也會包含乙個 .frm 表結構定義檔案,此外還會建立乙個擴充套件名為 .csv 的資料檔案。這個檔案是 csv 格式的文字檔案,用來儲存表中的實際資料。
.csv 檔案可以直接在 excel 中開啟,或者是使用其它檔案編輯工具檢視。另外,還有乙個同名的元資訊檔案,擴充套件名為 .csm,用來儲存表的狀態及表中儲存的資料量。
由於 csv 檔案可被直接編輯,如果操作得當,可以不通過 sql 語句直接修改 csv 檔案中的內容。
csv 儲存引擎基於 csv 格式檔案儲存資料,由於自身檔案格式的原因,所有列必須強制指定 not null。
blackhole(blackhole)
由於在 blackhole 儲存引擎的資料表中寫入任何資料都會消失,所以除了 .frm 檔案,blackhole 引擎表沒有其他相應的代表檔案。
MySQL資料庫學習 儲存引擎
儲存引擎 mysql 可以將資料以不同的技術儲存在檔案 記憶體 中,這種技術就稱為儲存引擎。每一種儲存引擎使用不同的儲存機制 索引技巧 鎖定水平,最終提供廣泛且不同的功能。mysql 支援的儲存引擎 n myisam ninnodb nmemory ncsv narchive 併發控制 當多個連線對...
Mysql資料庫儲存引擎
儲存引擎是什麼?mysql中的資料用各種不同的技術儲存在檔案 或者記憶體 中。這些技術中的每一種技術都使用不同的儲存機制 索引技巧 鎖定水平並且最終提供廣泛的不同的功能和能力。通過選擇不同的技術,你能夠獲得額外的速度或者功能,從而改善你的應用的整體功能。例如,如果你在研究大量的臨時資料,你也許需要使...
資料庫 mysql儲存引擎
mysql常用的四種引擎的介紹 1 myisam儲存引擎 不支援事務 也不支援外來鍵,優勢是訪問速度快,對事務完整性沒有要求或者以select,insert為主的應用基本上可以用這個引擎來建立表,適合寫多的情況。frm儲存當前資料表的結構,myd儲存當前表的資料,myi儲存當前資料表的索引 支援表級...