mysql存储引擎简书_MySQL存储引擎详解
一,基礎(chǔ)
1,插件式存儲引擎,允許第三方組織,根據(jù)其api來設(shè)計,很多功能需要依賴引擎支持,比如事務(wù)
2, 5.5以后默認為innodb,之前為myISAM,innodb支持事務(wù),myISAM不支持
3,存儲引擎是表級別的概念,同一個庫不建議多個引擎
二,InnoDB
1,處理大量的短期事務(wù)
2,數(shù)據(jù)存儲于"表空間(table space)"中
3,所有InnoDB表的數(shù)據(jù)放置于同一個表空間中 datadir 下 ibddata(多個)
4,每個表單獨使用一個表空間存儲表的數(shù)據(jù)和索引 innodb_file_per_table = ON(3,4建議選擇4,建議開啟此項)
5,每個表使用單獨表空間時,數(shù)據(jù)文件(數(shù)據(jù)和索引):tb1_name.ibd
#例如
[root@node1 mysql]# ls mydb/
db.opt t1.frm t1.ibd t2.frm t2.ibd
#frm 表格式定義文件
#ibd 數(shù)據(jù)文件
6,基于mvcc機制,并發(fā)控制,支持較高并發(fā),支持所有的四個事務(wù)隔離級別,默認級別為REPEATABLE READ,通過間隙鎖仿制幻讀的出現(xiàn)
7,使用聚集索引,支持自適應(yīng)hash索引
8,在MariaDB(XtraDB) 是對于Innodb大量改進后,整合社區(qū)的力量,有percona提供,雖然顯示為innodb 其實為XtraDB,開源
9,性能:預(yù)計操作,自適應(yīng)hash,插入緩存區(qū)
10,備份:支持熱備,(xtrabacup)
11,鎖粒度:行級別鎖
12,崩潰后安全恢復(fù)
三,MyISAM
1,支持全文索引(FULLTEXT index),壓縮,空間函數(shù),不支持事務(wù)
2,鎖粒度:表級別鎖
3,崩潰后無法安全恢復(fù)
4,在mariadb中對其進行改進為Aria,支持崩潰后恢復(fù)
5,使用場景:只讀(寫較少),表較少,可以接受長時候恢復(fù)操作
6,文件:.frm 表格式定義,MYD:數(shù)據(jù)文件,MYI:索引文件
7,支持壓縮表
ps:查看表使用的引擎,show status table;
ps:行格式:dynamic,fixed,compressed,compact,redundent
四,其他存儲引擎
1,CSV:將普通的CSV(字段通過逗號分隔)作為mysql表使用,方便不同數(shù)據(jù)庫軟件中導(dǎo)入導(dǎo)出
2,MRG_MYISAM:將多個MyISAM表合并成一個虛表
3,BLACKHOLE:類似于/dev/null 多級級聯(lián)復(fù)制時有用
4,MEMORY:存內(nèi)存,適用臨時表,中間數(shù)據(jù),數(shù)據(jù)不關(guān)鍵的,支持哈希索引,表級鎖,mysql臨時表默認為memory,如果臨時表空間不夠,則會存儲在磁盤上,導(dǎo)致性能下降,可以調(diào)整臨時表空間大小。
5,PERFORMANCE_SCHENA:偽存儲引擎,數(shù)據(jù)為mysql運行產(chǎn)生的數(shù)據(jù),如果mysql沒開啟,此表為空
6,ARCHIVE:只支持select和insert,支持行級鎖和專用緩存區(qū),歸檔可以使用
7,FEDERATED:用于訪問其他遠程mysql服務(wù)器一個代理,他通過創(chuàng)建一個到遠程MYSQL服務(wù)器的客戶端連接,并將查詢傳輸?shù)竭h程服務(wù)器執(zhí)行,而后完成數(shù)據(jù)存取,在MariaDB中實現(xiàn)的為FederatedX
五,MariaDB支持的其他存儲引擎
1,OQGraph
2,SphinxSE
3,TokuDB
4,Cassandra
5,CONNECT
6,SQUENCE
總結(jié)
以上是生活随笔為你收集整理的mysql存储引擎简书_MySQL存储引擎详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 时序 存储引擎_MySQL常
- 下一篇: 系统数据据结库设计理论mysql_基于J