做網(wǎng)站跑matlab程序百度一下網(wǎng)頁
存儲引擎就是儲數(shù)據(jù)、建立索引、更新/查詢數(shù)據(jù)等技術(shù)的實(shí)現(xiàn)方式。存儲引擎是基于表的,而不是基于庫的,所以存儲引擎也可被
稱為表類型。
存儲引擎特點(diǎn)
. InnoDB
介紹
InnoDB是一種兼顧高可靠性和高性能的通用存儲引擎,在MySQL 5.5之后,InnoDB是默認(rèn)的MySQL存儲引擎。
>特點(diǎn)
DML操作遵循ACID模型,支持事務(wù);
行級鎖,提高并發(fā)訪問性能;
支持外鍵FOREIGN KEY約束,保證數(shù)據(jù)的完整性和正確性;
> 文件
xxx.ibd:xxx代表的是表名,innoDB引擎的每張表都會對應(yīng)這樣一個表空間文件,存儲該表的表結(jié)構(gòu)(frm、 sdi)、數(shù)據(jù)和索引。
參數(shù):innodb_file_per_table
MyISAM
介紹
MylSAM是MySQL早期的默認(rèn)存儲引擎。
> 特點(diǎn)
不支持事務(wù),不支持外鍵
支持表鎖,不支持行鎖
訪問速度快
?文件
xxx.sdi: 存儲表結(jié)構(gòu)信息
xxx.MYD:存儲數(shù)據(jù)
xxx.MYI: 存儲索引
. Memory
>介紹
Memory引擎的表數(shù)據(jù)時存儲在內(nèi)存中的,由于受到硬件問題、或斷電問題的影響,只能將這些表作為臨時表或緩存使用。
特點(diǎn)
內(nèi)存存放
hash索引(默認(rèn))
>文件
xxx.sdi:存儲表結(jié)構(gòu)信息
存儲引擎選擇
在選擇存儲引擎時,應(yīng)該根據(jù)應(yīng)用系統(tǒng)的特點(diǎn)選擇合適的存儲引擎。對于復(fù)雜的應(yīng)用系統(tǒng),還可以根據(jù)實(shí)際情況選擇多種存儲引擎進(jìn)行組
合。
InnoDB:是Mysql的默認(rèn)存儲引擎,支持事務(wù)、外鍵。如果應(yīng)用對事務(wù)的完整性有比較高的要求,在并發(fā)條件下要求數(shù)據(jù)的一致
性,數(shù)據(jù)操作除了插入和查詢之外,還包含很多的更新、刪除操作,那么InnoDB存儲引擎是比較合適的選擇。
MylSAM:如果應(yīng)用是以讀操作和插入操作為主,只有很少的更新和刪除操作,并且對事務(wù)的完整性、并發(fā)性要求不是很高,那
么選擇這個存儲引擎是非常合適的。
>
MEMORY:將所有數(shù)據(jù)保存在內(nèi)存中,訪問速度快,通常用于臨時表及緩存。MEMORY的缺陷就是對表的大小有限制,太大的表
無法緩存在內(nèi)存中,而且無法保障數(shù)據(jù)的安全性。
總結(jié)
1. 體系結(jié)構(gòu)
連接層、服務(wù)層、引擎層、存儲層
2. 存儲引擎簡介
SHOW ENGINES;
CREATE TABLE XXXX( ...... ) ENGINE=INNODB ;
3. 存儲引擎特點(diǎn)
INNODB與MylSAM:事務(wù)、外鍵、行級鎖
4. 存儲引擎應(yīng)用
INNODB:存儲業(yè)務(wù)系統(tǒng)中對于事務(wù)、數(shù)據(jù)完整性要求較高的核心數(shù)據(jù)。
MyISAM:存儲業(yè)務(wù)系統(tǒng)的非核心事務(wù)。