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

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

系統 1851 0

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

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

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


??? ISAM:

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

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

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

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

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

沒有在InnoDB中擴大鎖定的需要,因為在InnoDB中行級鎖定適合非常小的空間。InnoDB也支持FOREIGN KEY強制。

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


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

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

  InnoDB 表可以是任何尺寸,即使在文件尺寸被限制為2GB的操作系統上。
??? InnoDB默認地被包含在MySQL二進制分發中。Windows Essentials installer使InnoDB成為Windows上MySQL的默認表。
??? InnoDB被用來在眾多需要高性能的大型數據庫站點上產生。著名的Internet新聞站點Slashdot.org運行在InnoDB上。

Mytrix, Inc.在InnoDB上存儲超過1TB的數據,還有一些其它站點在InnoDB上處理平均每秒800次插入/更新的

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

??? 所有的性能測試在:Micrisoft window xp sp2 , Intel(R) Pentinum(R) M processor 1.6oGHz 1G 內存的電腦上測試。
??? 測試方法:連續提交10個query, 表記錄總數:38萬 , 時間單位 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)加了索引以后,對于MyISAM查詢可以加快:4 206.09733倍,對InnoDB查詢加快510.72921倍,同時對MyISAM更新速度減慢為原來的1/2,InnoDB的更新速度減慢為原來的1/30。要看情況決定是否要加索引,比如不查詢的log表,不要做任何的索引。
??? (2)如果你的數據量是百萬級別的,并且沒有任何的事務處理,那么用MyISAM是性能最好的選擇。
??? (3)InnoDB表的大小更加的大,用MyISAM可省很多的硬盤空間。
??????? 在我們測試的這個38w的表中,表占用空間的情況如下:
??????????? 引擎類型??????????????????? MyISAM?????????????? InnoDB
??????????? 數據?????????????????????? 53,924 KB?????????? 58,976 KB
??????????? 索引?????????????????????? 13,640 KB?????????? 21,072 KB
??????????? 占用總空間????????????? 67,564 KB?????????? 80,048 KB
?
??????? 另外一個176W萬記錄的表, 表占用空間的情況如下:
??????????? 引擎類型??????????????? MyIsam?????????????? InnorDB
??????????? 數據?????????????????? 56,166 KB?????????? 90,736 KB
??????????? 索引?????????????????? 67,103 KB?????????? 88,848 KB
??????????? 占用總空間??????? 123,269 KB???????? 179,584 KB

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


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 中文字幕在线一区二区三区 | 国产精品真实对白精彩久久 | 2021国产在线视频 | 国内精品福利在线视频 | 99热最新在线 | 琪琪色播 | 亚洲一区二区三区影院 | 老头老太做爰xxx视频 | 中文字幕精品在线视频 | 欧美精品亚洲精品日韩专区va | 91精品久久久久久久久网影视 | 草久在线视频 | 久久爱www人成 | 青草视频网站 | 一七六九1769视频免费观看 | 亚洲第一视频在线播放 | 国产亚洲精品欧美一区 | 日韩欧美亚洲每日更新网 | 久久香蕉国产线看观看亚洲卡 | 爱久久www.35669 | 国产在线看片护士免费视频 | 特黄特级高清免费视频毛片 | 亚洲成人免费在线视频 | 日本欧洲亚洲一区在线观看 | 日韩大片 | 亚洲综合在线一区 | 天天操操| 丰满放荡岳乱妇91www | 色在线视频观看 | 综合88| 九色视频网 | 你懂得国产 | 成人性色生活影片 | 亚洲精品国产福利在线观看 | 在线观看亚洲免费视频 | 亚洲日本一区二区三区在线不卡 | 国产欧美日韩精品专区 | 日日狠狠的日日日日 | 国产精品一区二区久久不卡 | 国产网红在线视频 | 精品久久久久久久久久中文字幕 |