您好,登錄后才能下訂單哦!
Storage Engine是指表類型,也即在表創建時指明其使用的存儲引擎,同一庫中不同表可以使用不同的存儲引擎,但建議要使用同一種存儲引擎
MySQL體系結構
存儲引擎
InnoDB support for FULLTEXT indexes is available in MySQL 5.6.4 and later.
存儲引擎比較:https://docs.oracle.com/cd/E17952_01/mysql-5.5-en/storage-engines.html
MyISAM存儲引擎
MyISAM引擎特點:
不支持事務
表級鎖定
讀寫相互阻塞,寫入不能讀,讀時不能寫
只緩存索引
不支持外鍵約束
不支持聚簇索引
讀取數據較快,占用資源較少
不支持MVCC(多版本并發控制機制)高并發
崩潰恢復性較差
MySQL5.5.5前默認的數據庫引擎
適用場景:只讀(或者寫較少)、表較小(可以接受長時間進行修復操作)
MyISAM引擎文件:
tbl_name.frm: 表格式定義
tbl_name.MYD: 數據文件
tbl_name.MYI: 索引文件
InnoDB存儲引擎
InnoDB引擎特點:
支持事務,適合處理大量短期事務
行級鎖
讀寫阻塞與事務隔離級別相關
可緩存數據和索引
支持聚簇索引
崩潰恢復性更好
支持MVCC高并發
從MySQL5.5后支持全文索引
從MySQL5.5.5開始為默認的數據庫引擎
InnoDB數據庫文件
所有InnoDB表的數據和索引放置于同一個表空間中
表空間文件:datadir定義的目錄下
數據文件:ibddata1, ibddata2, ...
每個表單獨使用一個表空間存儲表的數據和索引
啟用:innodb_file_per_table=ON
兩類文件放在數據庫獨立目錄中
數據文件(存儲數據和索引):tb_name.ibd
表格式定義:tb_name.frm
其它存儲引擎
Performance_Schema:Performance_Schema數據庫
Memory :將所有數據存儲在RAM中,以便在需要快速查找參考和其他類似數據的環境中進行快速訪問。適用存放臨時數據。引擎以前被稱為HEAP引擎
MRG_MyISAM:使MySQL DBA或開發人員能夠對一系列相同的MyISAM表進行邏輯分組,并將它們作為一個對象引用。適用于VLDB(Very Large Data Base)環境,如數據倉庫
Archive :為存儲和檢索大量很少參考的存檔或安全審核信息,只支持SELECT和INSERT操作;支持行級鎖和專用緩存區
Federated聯合:用于訪問其它遠程MySQL服務器一個代理,它通過創建一個到遠程MySQL服務器的客戶端連接,并將查詢傳輸到遠程服務器執行,而后完成數據存取,提供鏈接單獨MySQL服務器的能力,以便從多個物理服務器創建一個邏輯數據庫。非常適合分布式或數據集市環境
BDB:可替代InnoDB的事務引擎,支持COMMIT、ROLLBACK和其他事務特性
Cluster/NDB:MySQL的簇式數據庫引擎,尤其適合于具有高性能查找要求的應用程序,這類查找需求還要求具有最高的正常工作時間和可用性
CSV:CSV存儲引擎使用逗號分隔值格式將數據存儲在文本文件中。可以使用CSV引擎以CSV格式導入和導出其他軟件和應用程序之間的數據交換
BLACKHOLE :黑洞存儲引擎接受但不存儲數據,檢索總是返回一個空集。該功能可用于分布式數據庫設計,數據自動復制,但不是本地存儲(可作為MySQL主從復制中主和從的中間的庫)
example:“stub”引擎,它什么都不做。可以使用此引擎創建表,但不能將數據存儲在其中或從中檢索。目的是作為例子來說明如何開始編寫新的存儲引擎
MariaDB支持的其它存儲引擎:
OQGraph
SphinxSE
TokuDB
Cassandra
CONNECT
SQUENCE
管理存儲引擎
查看mysql支持的存儲引擎:
show engines;
查看當前默認的存儲引擎:
show variables like '%storage_engine%';
設置默認的存儲引擎:
vim /etc/my.conf
[mysqld]
default_storage_engine= InnoDB;
查看庫中所有表使用的存儲引擎
Show table status from db_name;
查看庫中指定表的存儲引擎
show table status like 'tb_name';
show create table tb_name;
設置表的存儲引擎:
CREATE TABLE tb_name(... ) ENGINE=InnoDB;
ALTER TABLE tb_name ENGINE=InnoDB;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。