1. 程式人生 > >MySql中啟用InnoDB資料引擎的方法

MySql中啟用InnoDB資料引擎的方法

1、儲存引擎是什麼?

  Mysql中的資料用各種不同的技術儲存在檔案(或者記憶體)中。這些技術中的每一種技術都使用不同的儲存機制、索引技巧、鎖定水平並且最終提供廣泛的不同的功能和能力。通過選擇不同的技術,你能夠獲得額外的速度或者功能,從而改善你的應用的整體功能。這些不同的技術以及配套的相關功能在MySQL中被稱作儲存引擎(也稱作表型別)。MySql預設配置了許多不同的儲存引擎,可以預先設定或者在MySql伺服器中啟用。

  2、MYSQL支援的資料引擎

  MyISAM:預設的MySQL外掛式儲存引擎,它是在Web、資料倉儲和其他應用環境下最常使用的儲存引擎之一。

  InnoDB:用於事務處理應用程式,具有眾多特性,包括ACID事務支援。

  BDB:可替代InnoDB的事務引擎,支援COMMIT、ROLLBACK和其他事務特性。

  Memory:將所有資料儲存在RAM中,在需要快速查詢引用和其他類似資料的環境下,可提供極快的訪問。

  Merge:允許MySQL DBA或開發人員將一系列等同的MyISAM表以邏輯方式組合在一起,並作為1個物件引用它們。對於諸如資料倉儲等VLDB環境十分適合。

  Archive:為大量很少引用的歷史、歸檔、或安全審計資訊的儲存和檢索提供了完美的解決方案。

  Federated:能夠將多個分離的MySQL伺服器連結起來,從多個物理伺服器建立一個邏輯資料庫。十分適合於分散式環境或資料集市環境。

  Cluster/NDB:MySQL的簇式資料庫引擎,尤其適合於具有高效能查詢要求的應用程式,這類查詢需求還要求具有最高的正常工作時間和可用性。

  Other:其他儲存引擎包括CSV(引用由逗號隔開的用作資料庫表的檔案),Blackhole(用於臨時禁止對資料庫的應用程式輸入),以及Example引擎(可為快速建立定製的外掛式儲存引擎提供幫助)。

  3、啟動InnoDB引擎的方法

  Mysql中預設的是MyISAM資料引擎,可惜此引擎不支援事務處理,我們需要將預設的資料引擎改為InnoDB。其中InnoDB和BerkeleyDB支援事務處理,只是預設的情況下都是被disable的。所有的引擎裡面,InnoDB效能最強大,算是商業級的。啟動InnoDB引擎的方法如下

  1)關閉mysql的服務

  2)修改my.ini

  將default-storage-engine=INNODB前的註釋(#)去掉

  將skip-innodb這行註釋(加上#)

  3)儲存後重啟mysql服務

  4、MyISAM引擎和InnoDB引擎的基本差別

  • MyISAM型別不支援事務處理等高階處理,而InnoDB型別支援。
  • MyISAM型別的表強調的是效能,其執行數度比InnoDB型別更快,但是不提供事務支援,而InnoDB提供事務支援已經外部鍵等高階資料庫功能。
  • MyIASM是IASM表的新版本,有如下擴充套件:二進位制層次的可移植性、NULL列索引、對變長行比ISAM表有更少的碎片、支援大檔案、更好的索引壓縮等
  • InnoDB不支援FULLTEXT型別的索引
  • InnoDB 中不儲存表的具體行數
  • 對於AUTO_INCREMENT型別的欄位,InnoDB中必須包含只有該欄位的索引,但是在MyISAM表中,可以和其他欄位一起建立聯合索引
  • DELETE FROM table時,InnoDB不會重新建立表,而是一行一行的刪除
  • …………

  這些區別能夠影響應用程式的效能和功能,因此你必須針對業務型別來選擇合適的引擎,才能最大的發揮MySQL的效能優勢。

轉載自:https://blog.csdn.net/l732427480/article/details/51476648