公共MySQL的數(shù)據(jù)庫(kù)服務(wù)器層
導(dǎo)讀:MySQL數(shù)據(jù)庫(kù)插件式存儲(chǔ)引擎是MySQL數(shù)據(jù)庫(kù)服務(wù)器中的組件,負(fù)責(zé)為數(shù)據(jù)庫(kù)執(zhí)行實(shí)際的數(shù)據(jù)I/O操作,并能允許和強(qiáng)制執(zhí)行面向特殊應(yīng)用需求的特定特性集合。使用特殊存儲(chǔ)引擎的主要優(yōu)點(diǎn)之一在于,僅需提供特殊應(yīng)用所需的特性,因此,數(shù)據(jù)庫(kù)中的系統(tǒng)開(kāi)銷(xiāo)較小,最終結(jié)果具有更有效和更高的數(shù)據(jù)庫(kù)性能。這也是MySQL被始終視為具有高性能的原因之一,在行業(yè)標(biāo)準(zhǔn)基準(zhǔn)方面,它能匹敵或擊敗專(zhuān)有的整體式數(shù)據(jù)庫(kù)。
從技術(shù)角度上看,在存儲(chǔ)引擎中,一些獨(dú)特的支持底層結(jié)構(gòu)的組件是什么呢?一些關(guān)鍵差別包括:
1、并發(fā)性:某些應(yīng)用程序比其他應(yīng)用程序具有很多的顆粒級(jí)鎖定要求(如行級(jí)鎖定)。選擇正確的鎖定策略能夠減少開(kāi)銷(xiāo),并有助于整體性能的提升。它還包括對(duì)多種能力的支持,如多版本并發(fā)性控制或“快照”讀取等。
2、事務(wù)支持:并非所有的應(yīng)用程序都需要事務(wù),但對(duì)的確需要事務(wù)的應(yīng)用程序來(lái)說(shuō),有著定義良好的需求,如ACID兼容等。
3、引用完整性:通過(guò)DDDL定義的 外鍵,服務(wù)器需要強(qiáng)制保持關(guān)聯(lián)數(shù)據(jù)庫(kù)的引用完整性。
4、物理存儲(chǔ):它包括各種各樣的事項(xiàng),從表和索引的總的頁(yè)大小,到存儲(chǔ)數(shù)據(jù)所需的格式,到物理磁盤(pán)。
5、索引支持:不同的應(yīng)用程序傾向于采用不同的索引策略,每種存儲(chǔ)引擎通常有自己的編制索引方法,但某些索引方法(如B-tree索引)對(duì)幾乎所有的存儲(chǔ)引擎來(lái)說(shuō)是共同的。
6、 內(nèi)存高速緩沖:與其他應(yīng)用程序相比,不同的應(yīng)用程序?qū)δ承﹥?nèi)存高速緩沖策略的響應(yīng)更好,因此,盡管某些內(nèi)存高速緩沖對(duì)所有存儲(chǔ)引擎來(lái)說(shuō)是共同的(如用于用戶(hù)連接的高速緩沖,MySQL的高速查詢(xún)高速緩沖等),其他高速緩沖策略?xún)H當(dāng)使用特殊的存儲(chǔ)引擎時(shí)才唯一定義。
7、性能幫助:包括針對(duì)并行操作的多I/O線(xiàn)程,線(xiàn)程并發(fā)性,數(shù)據(jù)庫(kù)檢查點(diǎn),成批插入處理等。
8、其他目標(biāo)特性:可能包括對(duì)地理空間操作的支持,對(duì)特定數(shù)據(jù)處理操作的安全限制等。
每組插件式存儲(chǔ)引擎基本組件均采用了相應(yīng)的設(shè)計(jì),能夠?yàn)樘囟☉?yīng)用提供可選擇的特性集合。從反面角度看,避免使用組件特性集合有助于避免不必要的開(kāi)銷(xiāo)。因此,顯而易見(jiàn),應(yīng)理解特定應(yīng)用程序的需求集合,并選擇恰當(dāng)?shù)哪艽蠓雀纳葡到y(tǒng)整體效率和性能的MySQL存儲(chǔ)引擎。希望上文中涉及到的內(nèi)容對(duì)大家能夠有所幫助。
【編輯推薦】
- Linux下MySQL數(shù)據(jù)庫(kù)開(kāi)發(fā)技術(shù)
- 怎樣在MySQL中獲得更好的搜索結(jié)果
- 如何正確編寫(xiě)高質(zhì)量高性能的MySQL語(yǔ)法
- MySQL在命名用過(guò)程中所遇到的常見(jiàn)問(wèn)題