這篇文章主要介紹了MySQL數(shù)據(jù)庫中的存儲引擎是什么的相關(guān)知識,內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇Mysql數(shù)據(jù)庫中的存儲引擎是什么文章都會有所收獲,下面我們一起來看看吧。
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比大埔網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式大埔網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋大埔地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。
存儲引擎是數(shù)據(jù)庫中非常關(guān)鍵的部分,它就像是飛機(jī)、火箭中的引擎那樣。我們能不能把飛機(jī)上的存儲引擎發(fā)到火箭上去呢? 顯然是不可能的,因?yàn)橐娴氖褂檬且词褂玫膱鼍暗?。而在Mysql中,存儲引擎也是一樣的,其沒有好壞之分。我們需要在合適的場景下使用合適的存儲引擎才是我們需要做到位的。存儲引擎就是存儲數(shù)據(jù)、建立索引、更新/查詢數(shù)據(jù)等技術(shù)的實(shí)現(xiàn)方式。存儲引擎是基于表的,而不是基于庫的,所以存儲引擎也可以被稱為表類型。
MYsql的體系結(jié)構(gòu)如下圖所示:
最上層是一些客戶端和鏈接服務(wù),主要完成一些類似于連接處理,授權(quán)認(rèn)證,及相關(guān)的安全方案,服務(wù)器也會為安全接入的每個(gè)客戶端驗(yàn)證它所具有的操作權(quán)限。
第二層架構(gòu)主要完成大多數(shù)的核心服務(wù)功能,如SOL接口,并完成緩存的查詢,SOL的分析和優(yōu)化,部分內(nèi)置函數(shù)的執(zhí)行。所有跨存儲引擎的功能也在這一層實(shí)現(xiàn),如 過程、函數(shù)等。
存儲引警真正的負(fù)責(zé)了MvSOL中數(shù)據(jù)的存儲和提取,服務(wù)器通過API和存儲引警進(jìn)行通信。不同的存儲引擎具有不同的功能,這樣我們可以根據(jù)自己的需要,來選取合適的存儲引擎。
主要是將數(shù)據(jù)存儲在文件系統(tǒng)之上:并完成與存儲引擎的交互。
存儲引擎是有很多的,在MYsql 5.5 之后,默認(rèn)的存儲引擎是InnoDB 存儲引擎。之前默認(rèn)的是Memory 存儲引擎。
show engines;
create table Course( Con int primary key auto_increment, Cname varchar(10), Cpon int, Ccredit int ) show create table course;
例如,我們可以在創(chuàng)建表的同時(shí),指定此表的存儲引擎類型。
create table test_mysql( name varchar(10), age int ) engine = Memory;
這里重點(diǎn)介紹以下 InnoDB
InnoDB是一種兼顧高可靠性和高性能的通用存儲引擎,在 MvSOL 5.5 之后,InnoDB是默認(rèn)的 MvSOL存儲引擎。
DML操作遵循ACID模型,支持事務(wù);
行級鎖,提高并發(fā)訪問性能;
支持外鍵FOREIGN KEY約束,保證數(shù)據(jù)的完整性和正確性:
xxx.ibd:xxx代表的是表名,innoDB引擎的每張表都會對應(yīng)這樣一個(gè)表空間文件,存儲該表的表結(jié)構(gòu)(frm、sdi)、數(shù)據(jù)和索引。
參數(shù):innodb file per table
最后用一張圖,來展示一下InnoDB 的邏輯存儲結(jié)構(gòu)。
總結(jié):InnoDB 是支持事務(wù)的,而MyISAM不支持;InnoDB 是支持行鎖的,而MyISAM不支持,支持表鎖;InnoDB 是支持外鍵的,而MyISAM不支持;
關(guān)于“Mysql數(shù)據(jù)庫中的存儲引擎是什么”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“Mysql數(shù)據(jù)庫中的存儲引擎是什么”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。