中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

淺談——MySQL存儲引擎

發布時間:2020-02-27 21:16:53 來源:網絡 閱讀:344 作者:warrent 欄目:MySQL數據庫

博文大綱:

  • 一、MyISAM存儲引擎;
  • 二、InnoDB存儲引擎;
  • 三、Memory存儲引擎特點;
  • 四、如何選擇合適的存儲引擎?
  • 五、查看及修改表的默認引擎

前言

數據庫存儲引擎是數據庫底層軟件組件,數據庫管理系統(DBMS)使用數據引擎進行創建、查詢、更新和刪除數據操作。不同的存儲引擎提供不同的存儲機制、索引技巧、鎖定水平等功能,使用不同的存儲引擎,還可以獲得特定的功能。現在許多不同的數據庫管理系統都支持多種不同的數據引擎。MySQL的核心就是存儲引擎。

MySQL提供了多個不同的存儲引擎,包括處理事務安全表的引擎和處理非事務安全表的引擎。在MySQL中,不需要在整個服務器中使用一種引擎,針對具體要求可以對每一個表使用不同的存儲引擎。

  • 存儲引擎說白了就是數據存儲的格式,不同的存儲引擎功能不同,占用的空間大小不同,讀取性能也不同;
  • 數據庫存儲引擎是數據庫底層軟件組件,不同的存儲引擎提供不同的存儲機制;
  • 在 MySQL 中,不需要在整個服務器中使用同一種存儲引擎,可以對每一個表使用不同的存儲引擎;
  • MySQL 支持多種存儲引擎,如 InnoDB 、MyISAM 、Memory 、Merge 、Archive 、CSV 、Federated 等等。

一、MyISAM存儲引擎

1、MyISAM存儲引擎的特點
  • MySQL 5.5 之前默認使用 MyISAM 引擎,MySQL 5.5 之后默認使用 InnoDB 引擎;
  • MyISAM 引擎讀取速度較快,占用資源相對較少,不支持事務,不支持外鍵約束,但支持全文索引;
  • 讀寫互相阻塞,也就是說讀數據的時候你就不能寫數據,寫數據的時候你就不能讀數據;
  • MyISAM 引擎只能緩存索引,而不能緩存數據。
2、MyISAM適用場景
  • 不需要事務支持的業務,例如轉賬就不行;
  • 適用于讀數據比較多的業務,不適用于讀寫頻繁的業務;
  • 并發相對較低、數據修改相對較少的業務;
  • 硬件資源比較差的機器可以考慮使用 MyISAM 引擎。

二、InnoDB存儲引擎

1、InnoDB存儲引擎的特點
  • 事務型數據庫的首選引擎,支持事務安全表,支持行鎖定和外鍵,MySQL 5.5.5 版本之后,InnoDB 作為默認存儲引擎;
  • 具有提交、回滾和崩潰恢復能力的事務安全存儲引擎,能處理巨大數據量,性能及效率高,完全支持外鍵完整性約束;
  • 具有非常高效的緩存特性,能緩存索引也能緩存數據,對硬件要求比較高;
  • 使用 InnoDB 時,將在 MySQL 數據目錄下創建一個名為 ibdata1 的 10MB 大小的自動擴展數據文件,以及兩個名為 ib_logfile0 和 ib_logfile1 的 5MB 大小的日志文件。
2、InnoDB 適用場景
  • 需要事務支持的業務、高并發的業務
  • 數據更新較為頻繁的場景,比如 BBS、SNS、微博等
  • 數據一致性要求較高的業務,比如充值轉賬、銀行卡轉賬

三、Memory存儲引擎特點

  • Memory 存儲引擎將表中的數據存儲到內存中,為查詢和引用其他表數據提供快速訪問;
  • Memory 存儲引擎執行 HASH 和 BTREE 索引,不支持 BLOB 和 TEXT 列,支持 AUTO_INCREMENT 列和對可包含 NULL 值得列的索引;
  • 當不再需要 Memory 表的內容時,要釋放被 Memory 表使用的內存,應該執行 DELETE FROM 或 TRUNCATE TABLE ,或者刪除整個表。

四、如何選擇合適的存儲引擎?

不同的業務需求需要選擇不同的存儲引擎,具體可以參照以下幾點來進行選擇:

  • 如果要提供提交、回滾和崩潰恢復能力的事務安全能力,并要求實現并發控制,InnoDB 是個很好的選擇;
  • 如果數據表主要用來插入和查詢記錄,則 MyISAM 引擎能提供較高的處理效率;
  • 如果只是臨時存放數據,數據量不大,并且不需要較高的安全性,可以選擇將數據保存在內存中的 Memory 引擎,MySQL 使用該引擎作為臨時表,存放查詢的中間結果;
  • 如果只有 INSERT 和 SELECT 操作,可以選擇 Archive 引擎,支持高并發的插入操作,如記錄日志信息可以使用 Archive 引擎。

主要的三個數據引擎所支持的功能如下表所示:

淺談——MySQL存儲引擎

五、查看及修改表的默認引擎

mysql> show engines\G;                <!--查看數據庫支持的引擎-->
mysql> show variables like 'default_storage_engine';       <!--查看默認的存儲引擎-->
mysql> show variables like '%engine%';     <!--查看全部的默認引擎-->
mysql> show create table t01\G;     <!--查看t01表的默認引擎-->
mysql> alter table t01 engine=myisam;     <!--修改其默認引擎為myisam-->

———————— 本文至此結束,感謝閱讀 ————————

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

玛多县| 抚顺市| 安塞县| 阳朔县| 务川| 广西| 横山县| 瑞金市| 海宁市| 文登市| 东光县| 博湖县| 北票市| 旬邑县| 巴彦淖尔市| 鞍山市| 延津县| 色达县| 景东| 客服| 静乐县| 长宁区| 葫芦岛市| 福海县| 无棣县| 青岛市| 广州市| 罗山县| 厦门市| 浮山县| 石狮市| 临汾市| 扎囊县| 沂水县| 仙桃市| 玉山县| 桃园县| 汕尾市| 广宗县| 郴州市| 霍城县|