FROM:
http://blog.roga.tw/2008/11/mysql-%E8%B3%87%E6%96%99%E5%BA%AB%E5%84%B2%E5%AD%98%E5%BC%95%E6%93%8E%E7%9A%84%E9%81%B8%E7%94%A8/
http://ssorc.tw/663
http://twpug.net/docs/mysql-5.1/pluggable-storage.html
簡而言之:
項目 | MyISAM | InnoDB | Memory |
---|---|---|---|
空間限制 | 無 | 64TB | 記憶體 |
transaction | x | 有 | x |
大量 Insert 速度 | 高 | 低 | 高 |
設置外來鍵 | x | 有 | x |
鎖定層級 | 資料表 | 資料列 | 資料表 |
二元樹索引 | 有 | 有 | 不知 |
雜湊索引 | x | 有 | 有 |
全文搜尋索引 | 有 | x | x |
資料壓縮 | 有 | x | x |
資料快取 | x | 有 | 有 |
索引快取 | 有 | 有 | 有 |
記憶體佔用 | 低 | 高 | 中 |
磁碟佔用 | 低 | 高 | x |
MyISAM 來說,最大的好處是成本低,而且可以 create views
InnoDB 也是有缺點像是不支援 FULLTEXT 的索引,且記憶體佔用多、磁碟空間耗用大
下述儲存引擎是最常用的:
· MyISAM:預設的MySQL插件式儲存引擎,它是在Web、數據倉儲和其他應用環境下最常使用的儲存引擎之一。注意,通過更改STORAGE_ENGINE配置變數,能夠方便地更改MySQL伺服器的預設儲存引擎。
· InnoDB:用於事務處理應用程式,具有眾多特性,包括ACID事務支援。
· BDB:可替代InnoDB的事務引擎,支援COMMIT、ROLLBACK和其他事務特性。
· Memory:將所有數據保存在RAM中,在需要快速搜尋引用和其他類似數據的環境下,可提供極快的訪問。
· Merge:允許MySQL DBA或開發人員將一系列等同的MyISAM資料表以邏輯方式組合在一起,並作為1個對象引用它們。對於諸如數據倉儲等VLDB環境十分適合。
· Archive:為大量很少引用的歷史、歸檔、或安全審計訊息的儲存和檢索提供了完美的解決方案。
· Federated:能夠將多個分離的MySQL伺服器連結起來,從多個物理伺服器建立一個邏輯資料庫。十分適合於分佈式環境或數據集市環境。
· Cluster/NDB:MySQL的叢集式資料庫引擎,尤其適合於具有高性能搜尋要求的應用程式,這類搜尋需求還要求具有最高的正常工作時間和可用性。
· Other:其他儲存引擎包括CSV(引用由逗號隔開的用作資料庫資料表的檔案),Blackhole(用於臨時禁止對資料庫的應用程式輸入),以及Example引擎(可為快速建立定製的插件式儲存引擎提供幫助)。
請記住,對於整個伺服器或方案,您並不一定要使用相同的儲存引擎,您可以為方案中的每個資料表使用不同的儲存引擎,這點很重要。
沒有留言:
張貼留言