久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL引擎有哪些

164次閱讀
沒有評論

共計 3114 個字符,預計需要花費 8 分鐘才能閱讀完成。

這篇文章主要介紹了 MySQL 引擎有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。

 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

感謝你能夠認真閱讀完這篇文章,希望丸趣 TV 小編分享的“MySQL 引擎有哪些”這篇文章對大家有幫助,同時也希望大家多多支持丸趣 TV,關注丸趣 TV 行業資訊頻道,更多相關知識等著你來學習!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-15發表,共計3114字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 东山县| 张家港市| 通河县| 东方市| 海伦市| 上饶市| 新兴县| 肥东县| 集贤县| 梁河县| 清徐县| 巴马| 泸水县| 岑巩县| 紫云| 丰都县| 营山县| 桂东县| 浑源县| 醴陵市| 波密县| 昔阳县| 呼和浩特市| 扬中市| 南陵县| 宜君县| 鞍山市| 松阳县| 承德市| 大港区| 宜章县| 辰溪县| 达孜县| 双柏县| 嘉黎县| 松江区| 鄯善县| 筠连县| 天祝| 广德县| 横峰县|