亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

MySQL引擎介紹ISAM,MyISAM,HEAP,InnoDB

系統(tǒng) 2159 0

MySQL數(shù)據(jù)庫引擎取決于MySQL在安裝的時(shí)候是如何被編譯的。要添加一個(gè)新的引擎,就必須重新編譯MYSQL。

在缺省情況下,MYSQL支持三個(gè)引擎:ISAM、MYISAM和HEAP。另外兩種類型INNODB和BERKLEY(BDB),也常常可以使用。

如果技術(shù)高超,還可以使用MySQL++ API自己做一個(gè)引擎。下面介紹幾種數(shù)據(jù)庫引擎:


??? ISAM:

     ISAM是一個(gè)定義明確且歷經(jīng)時(shí)間考驗(yàn)的數(shù)據(jù)表格管理方法,它在設(shè)計(jì)之時(shí)就考慮到 數(shù)據(jù)庫被查詢的次數(shù)要遠(yuǎn)大于更新的次數(shù)。因此,ISAM執(zhí)行讀取操作的速度很快,而且不占用大量的內(nèi)存和存儲(chǔ)資源。ISAM的兩個(gè)主要不足之處在于,它不 支持事務(wù)處理,也不能夠容錯(cuò):如果你的硬盤崩潰了,那么數(shù)據(jù)文件就無法恢復(fù)了。如果你正在把ISAM用在關(guān)鍵任務(wù)應(yīng)用程序里,那就必須經(jīng)常備份你所有的實(shí) 時(shí)數(shù)據(jù),通過其復(fù)制特性,MYSQL能夠支持這樣的備份應(yīng)用程序。
??? MyISAM:

     ? MyISAM是MySQL的ISAM擴(kuò)展格式和缺省的數(shù)據(jù)庫引擎。除了提供ISAM里所沒有的索引和字段管理的大量功能,MyISAM還使用一種表格鎖定的機(jī)制,來優(yōu)化多個(gè)并發(fā)的讀寫操作,其代價(jià)是你需要經(jīng)常運(yùn)行OPTIMIZE TABLE命令,來恢復(fù)被更新機(jī)制所浪費(fèi)的空間。MyISAM還有一些有用的擴(kuò)展,例如用來修復(fù)數(shù)據(jù)庫文件的MyISAMCHK工具和用來恢復(fù)浪費(fèi)空間的 MyISAMPACK工具。MYISAM強(qiáng)調(diào)了快速讀取操作,這可能就是為什么MySQL受到了WEB開發(fā)如此青睞的主要原因:在WEB開發(fā)中你所進(jìn)行的大量數(shù)據(jù)操作都是讀取操作。所以,大多數(shù)虛擬主機(jī)提供商和INTERNET平臺(tái)提供商只允許使用MYISAM格式。MyISAM格式的一個(gè)重要缺陷就是不能在表損壞后恢復(fù)數(shù)據(jù)。
??? HEAP:

     HEAP允許只駐留在內(nèi)存里的臨時(shí)表格。駐留在內(nèi)存里讓HEAP要比ISAM和MYISAM都快,但是它所管理的數(shù)據(jù)是不穩(wěn)定的,而且如果在關(guān)機(jī)之前沒有進(jìn)行保存,那么所有的數(shù)據(jù)都會(huì)丟失。在數(shù)據(jù)行被刪除的時(shí)候,HEAP也不會(huì)浪費(fèi)大量的空間。HEAP表格在你需要使用SELECT表達(dá)式來選擇和操控?cái)?shù)據(jù)的時(shí)候非常有用。要記住,在用完表格之后就刪除表格。
??? InnoDB:

     InnoDB數(shù)據(jù)庫引擎都是造就MySQL靈活性的技術(shù)的直接產(chǎn)品,這項(xiàng)技術(shù)就是MYSQL++ API。在使用MYSQL的時(shí)候,你所面對(duì)的每一個(gè)挑戰(zhàn)幾乎都源于ISAM和MyISAM數(shù)據(jù)庫引擎不支持事務(wù)處理(transaction process)也不支持外來鍵。盡管要比ISAM和 MyISAM引擎慢很多,但是InnoDB包括了對(duì)事務(wù)處理和外來鍵的支持,這兩點(diǎn)都是前兩個(gè)引擎所沒有的。如前所述,如果你的設(shè)計(jì)需要這些特性中的一者 或者兩者,那你就要被迫使用后兩個(gè)引擎中的一個(gè)了。
??? MySQL 官方對(duì)InnoDB是這樣解釋的:InnoDB給MySQL提供了具有提交、回滾和崩潰恢復(fù)能力的事務(wù)安全(ACID兼容)存儲(chǔ)引擎。

InnoDB鎖定在行級(jí)并且也在SELECT語句提供一個(gè)Oracle風(fēng)格一致的非鎖定讀,這些特色增加了多用戶部署和性能。

沒有在InnoDB中擴(kuò)大鎖定的需要,因?yàn)樵贗nnoDB中行級(jí)鎖定適合非常小的空間。InnoDB也支持FOREIGN KEY強(qiáng)制。

在SQL查詢中,你可以自由地將InnoDB類型的表與其它MySQL的表的類型混合起來,甚至在同一個(gè)查詢中也可以混合。


??? InnoDB是為處理巨大數(shù)據(jù)量時(shí)的最大性能設(shè)計(jì),它的CPU效率可能是任何其它基于磁盤的關(guān)系數(shù)據(jù)庫引擎所不能匹敵的。
??? InnoDB存儲(chǔ)引擎被完全與MySQL服務(wù)器整合,InnoDB存儲(chǔ)引擎為在主內(nèi)存中緩存數(shù)據(jù)和索引而維持它自己的緩沖池。

  InnoDB存儲(chǔ)它的表&索引在一個(gè)表空間中,表空間可以包含數(shù)個(gè)文件(或原始磁盤分區(qū))。這與MyISAM表不同,比如在MyISAM表中每個(gè)表被存在分離的文件中。

  InnoDB 表可以是任何尺寸,即使在文件尺寸被限制為2GB的操作系統(tǒng)上。
??? InnoDB默認(rèn)地被包含在MySQL二進(jìn)制分發(fā)中。Windows Essentials installer使InnoDB成為Windows上MySQL的默認(rèn)表。
??? InnoDB被用來在眾多需要高性能的大型數(shù)據(jù)庫站點(diǎn)上產(chǎn)生。著名的Internet新聞?wù)军c(diǎn)Slashdot.org運(yùn)行在InnoDB上。

Mytrix, Inc.在InnoDB上存儲(chǔ)超過1TB的數(shù)據(jù),還有一些其它站點(diǎn)在InnoDB上處理平均每秒800次插入/更新的

??? 一般來說,MyISAM適合:(1)做很多count 的計(jì)算;(2)插入不頻繁,查詢非常頻繁;(3)沒有事務(wù)。InnoDB適合:(1)可靠性要求比較高,或者要求事務(wù);(2)表更新和查詢都相當(dāng)?shù)念l繁,并且表鎖定的機(jī)會(huì)比較大的情況。
??? 一般情況下,MySQL會(huì)默認(rèn)提供多種存儲(chǔ)引擎,可以通過下面的查看:
??? (1)看你的MySQL現(xiàn)在已提供什么存儲(chǔ)引擎: mysql> show engines;
??? (2)看你的MySQL當(dāng)前默認(rèn)的存儲(chǔ)引擎: mysql> show variables like '%storage_engine%';
??? (3)你要看某個(gè)表用了什么引擎(在顯示結(jié)果里參數(shù)engine后面的就表示該表當(dāng)前用的存儲(chǔ)引擎): mysql> show create table 表名;

??? 所有的性能測(cè)試在:Micrisoft window xp sp2 , Intel(R) Pentinum(R) M processor 1.6oGHz 1G 內(nèi)存的電腦上測(cè)試。
??? 測(cè)試方法:連續(xù)提交10個(gè)query, 表記錄總數(shù):38萬 , 時(shí)間單位 s
??????? 引擎類型??????????????????? MyISAM??????????????? InnoDB????????????? 性能相差
??????? count????????????????????? 0.0008357??????????? 3.0163??????????????? 3609
??????? 查詢主鍵?????????????????? 0.005708????????????? 0.1574??????????????? 27.57
??????? 查詢非主鍵????????????????? 24.01?????????????????? 80.37???????????????? 3.348
??????? 更新主鍵?????????????????? 0.008124???????????? 0.8183???????????????? 100.7
??????? 更新非主鍵??????????????? 0.004141???????????? 0.02625?????????????? 6.338
??????? 插入???????????????????????? 0.004188???????????? 0.3694???????????????? 88.21
??? (1)加了索引以后,對(duì)于MyISAM查詢可以加快:4 206.09733倍,對(duì)InnoDB查詢加快510.72921倍,同時(shí)對(duì)MyISAM更新速度減慢為原來的1/2,InnoDB的更新速度減慢為原來的1/30。要看情況決定是否要加索引,比如不查詢的log表,不要做任何的索引。
??? (2)如果你的數(shù)據(jù)量是百萬級(jí)別的,并且沒有任何的事務(wù)處理,那么用MyISAM是性能最好的選擇。
??? (3)InnoDB表的大小更加的大,用MyISAM可省很多的硬盤空間。
??????? 在我們測(cè)試的這個(gè)38w的表中,表占用空間的情況如下:
??????????? 引擎類型??????????????????? MyISAM?????????????? InnoDB
??????????? 數(shù)據(jù)?????????????????????? 53,924 KB?????????? 58,976 KB
??????????? 索引?????????????????????? 13,640 KB?????????? 21,072 KB
??????????? 占用總空間????????????? 67,564 KB?????????? 80,048 KB
?
??????? 另外一個(gè)176W萬記錄的表, 表占用空間的情況如下:
??????????? 引擎類型??????????????? MyIsam?????????????? InnorDB
??????????? 數(shù)據(jù)?????????????????? 56,166 KB?????????? 90,736 KB
??????????? 索引?????????????????? 67,103 KB?????????? 88,848 KB
??????????? 占用總空間??????? 123,269 KB???????? 179,584 KB

MySQL引擎介紹ISAM,MyISAM,HEAP,InnoDB


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 台湾一级毛片免费播放 | 亚洲乱码在线观看 | 亚洲欧洲视频在线观看 | 精品玖玖玖视频在线观看 | 国产区综合另类亚洲欧美 | 国产久草视频 | 亚洲精品国产啊女成拍色拍 | 国产在线观看91精品不卡 | 高清在线一区二区三区亚洲综合 | 国产亚洲片 | 91日韩欧美| 欧美色亚洲图 | 99久热在线精品视频播 | 一级毛片老太婆交性欧美 | 男人资源在线 | 毛片一区 | 日本 a| 干干干日日日 | 99热这里只有精品国产在热久久 | 天天舔天天插 | 免费一看一级毛片人 | 伊人久久中文字幕久久cm | 人人干夜夜操 | 精品国产福利久久久 | 国产高清国内精品福利99久久 | 日本最新免费二区 | va亚洲va日韩不卡在线观看 | 日韩在线天堂 | 色爱区综合激情五月综合激情 | 嫩模被xxxx视频在线观看 | 日韩黄色网| 多多多色麻豆 | 日本a毛片在线播放 | 成人国产在线观看 | 国产亚洲美女 | 一级a毛片免费观看 | 成人影院在线免费观看 | 动漫三级在线观看 | 超级乱淫视频aⅴ播放视频 超级乱淫视频播放日韩 | 欧美国产日韩久久久 | 国产成人一区二区视频在线观看 |