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