Mysql常用的存儲引擎

一、概述:

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

二、查看Mysql支持的存儲引擎

    SHOW ENGINES;



三、常用的存儲引擎介紹

    1. InnoDB存儲引擎

        InnoDB是事務型數據庫的首選引擎,支持事務安全表(ACID),支持行鎖定和外鍵,上圖也看到了,InnoDB是默認的MySQL引擎。

    特點:支持事務、外鍵具有提交、回滾和崩潰恢復能力的事物安全(ACID兼容)存儲引擎,行級鎖定

    數據存儲順序:   

   Innodb表數據的存儲是按照主鍵的順序排列每個寫入的數據,該特點決定了該表類型寫入數據的操作較慢    

    注意: 

        事務: 把許多寫入(增、改、刪)sql語句捆綁在一起,要麼執行、要麼不執行事務經常用於與有關的方面

        四個特點: 原子,一致,持久,隔離

        具體操作:

        start transaction;

        許多寫入sql語句

      sql語句有問題

    rollback;回滾

               commit;提交


      rollbackcommit只能執行一個

併發性:

    該存儲類型的併發性較高,多人同時操作該數據表時,爲了使數據表的內容不容易發生變化需要對該表的數據進行'鎖定'

 該類型的鎖爲行級鎖,只鎖定被操作當期的紀錄。


InnoDB不創建目錄,使用InnoDB時,該類型 數據、索引 的物理文件位置:

    所有innodb表的數據和索引信息都存儲在以下ibdata1文件中。

    注: 可以爲每個innodb類型表創建自己的存儲空間,默認情況下,每個InnoDB表數據和索引不會創建單獨的文件存儲


    2.Myisam存儲引擎

        MyISAM基於ISAM存儲引擎,並對其進行擴展。它是在Web、數據倉儲和其他應用環境下最常使用的存儲引擎之一。MyISAM擁有較高的插入、查詢速度,但不支持事務。    

① 該類型的數據表  表結構、數據、索引 都有獨立的存儲文件:

MyISAM數據表:

    *.frm:表結構文件

    *.MYD:表數據文件

    *.MYI:表索引文件

每個myisam數據表的 結構、數據、索引 都有獨立的存儲文件

特點:獨立的存儲文件可以單獨備份、還原


② 數據存儲順序:Myisam數據表存儲是按照自然順序排列每個寫進的數據

特點: 該特點決定了該類型的數據表寫入數據的速度較快

③ 併發性:

    該存儲類型的數據表的併發性較低。

    原因:該類型鎖的級別是——表鎖

④ 壓縮機制

    如果一個數據表的數據非常多,爲了節省存儲空間,需要對錶進行壓縮處理

    壓縮工具: myisampack.exe  表名

    重建索引: myisamchk.exe -rq 表名

    解壓縮工具: myisamchk.exe --unpack 表名

    注:

        壓縮後的數據表不能進行插入,更新,刪除(只能讀)操作,需要操作時需要先進行解壓,寫入數據後再壓縮 

    壓縮的數據表特點: 不能頻繁的寫入操作,知識內容固定的數據表可以做成壓縮處理

        例如: 存儲全國地區信息的數據表,收貨地址信息的數據表


總結:

    Innodb存儲引擎:適合做修改,刪除

    Myisam存儲引擎:適合做查詢,寫入


3. Archive(歸檔存儲引擎)

    該引擎只有寫入,查詢操作,沒有修改,刪除操作。Archive支持高併發的插入操作,但是本身不是事務安全的;

    比較適合存儲「日誌」性質的信息


4. Memory

    如果只是臨時存放數據,數據量不大,並且不需要較高的數據安全性,可以選擇將數據保存在內存中的Memory引擎,MySQL中使用該引擎作爲臨時表,存放查詢的中間結果

    特點:操作數獨非常快,但是服務器斷電,給存儲引擎的數據立即丟失。


使用哪一種引擎需要靈活選擇,一個數據庫中多個表可以使用不同引擎以滿足各種性能和實際需求,使用合適的存儲引擎,將會提高整個數據庫的性能




發佈了44 篇原創文章 · 獲贊 11 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章