真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

什么是Mysql存儲引擎

這篇文章主要介紹“什么是MySQL存儲引擎”,在日常操作中,相信很多人在什么是Mysql存儲引擎問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”什么是Mysql存儲引擎”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習吧!

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信平臺小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了通江免費建站歡迎大家使用!

InnoDB存儲引擎

InnoDB是MySQL的默認事務(wù)型引擎,也是最重要、使用最廣泛的存儲引擎,它被設(shè)計用來處理大量的短期事務(wù),InnoDB的性能和自動崩潰恢復(fù)特性,使得它在非事務(wù)存儲的需求中也很流行。除非有非常特別的原因使用其它的存儲引擎,否則應(yīng)該優(yōu)先考慮InnoDB引擎。InnoDB采用MVCC來支持高并發(fā),并且實現(xiàn)了四個標準的隔離級別。InnoDB基于聚簇索引建立。并且內(nèi)部做了很多優(yōu)化,包括從磁盤讀取數(shù)據(jù)時采用的可預(yù)測性預(yù)讀,能夠在內(nèi)存中創(chuàng)建hash索引以加速讀操作的自適應(yīng)哈希索引,以及能夠加速插入操作的插入緩沖區(qū)等。

MyISAM存儲引擎

MySQL 5.1及之前的版本默認的存儲引擎。提供了大量的特性,包括全文索引、壓縮、空間函數(shù)等,但是不支持事務(wù)和行級鎖,而且有一個毫無疑問的缺陷就是崩潰后無法安全恢復(fù)。對于只讀的數(shù)據(jù),或者表比較小,可以忍受修復(fù)repair操作,則依然可以繼續(xù)使用MyISAM。主要特性有:加鎖與并發(fā),整張表加鎖而不是針對行(造成性能問題),讀取時會對需要讀到的所有表加共享鎖,寫入時則對表加排它鎖,但是在表有讀取查詢的同時,也可以往表中插入新的記錄(稱為并發(fā)插入);修復(fù),可以手動或者自動執(zhí)行檢查和修復(fù)操作,但會導(dǎo)致一些數(shù)據(jù)丟失,而且修復(fù)操作是非常慢的。(check table mytable,repair table mytable);支持前綴索引和全文索引,后者基于分詞創(chuàng)建,可以支持復(fù)雜的查詢;延遲更新索引建,指定DELAY_KEY_WRITE選項,在每次修改執(zhí)行完成后,不會立即將修改的索引數(shù)據(jù)寫入磁盤,而是會寫到內(nèi)存中的鍵緩沖區(qū),只有在清理鍵緩沖區(qū)或者關(guān)閉表的時候才會將對應(yīng)的索引塊寫入磁盤。這種方式可以極大提升寫入性能,但是在數(shù)據(jù)庫或者主機崩潰時會造成索引損壞,需要執(zhí)行修復(fù)操作;支持壓縮表,但壓縮后不可修改(除非解除壓縮、修改數(shù)據(jù)然后再次壓縮),有利于減少磁盤空間占用,減少磁盤I/O提升查詢性能。

其它存儲引擎

Memory引擎

所有數(shù)據(jù)保存在內(nèi)存中,不需要進行磁盤IO,至少比MyISAM表一個數(shù)量級,適合快速訪問數(shù)據(jù),并且這些數(shù)據(jù)不會被修改,重啟會丟失。適合查找或者映射表,緩存周期性聚合數(shù)據(jù)或者保存數(shù)據(jù)分析產(chǎn)生的中間數(shù)據(jù)等場景。

與臨時表不同,臨時表指使用create temporary table語句創(chuàng)建的表,它可以使用任何存儲引擎,臨時表只在單個連接中可見,當連接斷開臨時表也將不復(fù)存在。

Archive引擎

只支持insert和select操作,會緩存所有的寫并利用zlib對插入的行進行壓縮,所以比MyISAM的表I/O更少。適合日志和數(shù)據(jù)采集類應(yīng)用,是一個針對高速插入和壓縮做了優(yōu)化的簡單引擎。

如何選擇合適的引擎

大部分情況下,InnoDB都是正確的選擇,也是默認的存儲引擎。除非需要用到某些InnoDB不具備的特性,并且沒有其它辦法可以替代,否則都應(yīng)該優(yōu)先選擇InnoDB引擎。

事務(wù)

如果需要事務(wù)支持,那么InnoDB是目前最穩(wěn)點并且經(jīng)過驗證的選擇。

備份

如果需要在線熱備份,那么選擇InnoDB就是最基本的要求,如果可以定期地關(guān)閉服務(wù)器來執(zhí)行備份,那么備份的因素則可以忽略。

崩潰恢復(fù)

數(shù)據(jù)量比較大的時候,系統(tǒng)崩潰后如何快速地恢復(fù)是一個需要考慮的問題。相對而言,MyISAM崩潰后發(fā)生損壞的概率比InnoDB要高很多,而且恢復(fù)速度也慢。

特有特性

比如只有MyISAM支持地理空間搜索,InnoDB支持聚簇索引等。

應(yīng)用舉例

日志型應(yīng)用

這類應(yīng)用對插入速度有很高的要求,數(shù)據(jù)庫不能成為瓶頸,MyISAM或者Archive存儲引擎對這類應(yīng)用比較合適,因為開銷低,而且插入速度非???。如果需要對記錄的日志做分析報表,生成報表的sql可能導(dǎo)致插入效率明顯降低,如何解決?一、利用MySQL內(nèi)置的復(fù)制方案將數(shù)據(jù)復(fù)制一份到備庫,然后在備庫上執(zhí)行比消耗時間和CPU的查詢,主庫用于高效的插入工作。二、表分時間段存儲,對歷史表的頻繁查詢操作不會干擾到最新當前表上的插入操作。

只讀表或者大部分情況下只讀的表

讀多寫少的場景,如果不介意MyISAM的崩潰恢復(fù)問題,那么MyISAM是合適的,MyISAM只會將數(shù)據(jù)寫入到內(nèi)存中,然后等待操作系統(tǒng)定期將數(shù)據(jù)刷出到磁盤上。

不要輕信“MyISAM比InnoDB快”之類的經(jīng)驗之談,這個結(jié)論不是絕對的,在很多已知的場景中,InnoDB的速度都可以讓MyISAM望塵莫及,尤其是使用到聚簇索引,后者需要訪問的數(shù)據(jù)都可以放入內(nèi)存的應(yīng)用。當設(shè)計上述類型的應(yīng)用時,建議采用InnoDB。MyISAM隨著應(yīng)用壓力的上升,則可能迅速惡化,各種鎖爭用、崩潰后的數(shù)據(jù)丟失等問題都會隨之而來。

訂單處理

事務(wù)支持是必要選項,同時考慮外鍵支持情況,InnoDB是訂單處理類應(yīng)用的最佳選擇。

到此,關(guān)于“什么是Mysql存儲引擎”的學(xué)習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習,快去試試吧!若想繼續(xù)學(xué)習更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
網(wǎng)站題目:什么是Mysql存儲引擎
網(wǎng)站網(wǎng)址:http://weahome.cn/article/ieoscc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部