MySQL系列:存儲引擎簡介

1、存儲引擎mysql

 1.Mariadb存儲引擎sql

       存儲引擎就是指表的類型決定了表在計算機中的存儲方式,在MySQl是一個插入式的存儲引擎概念。決定了MySQl數據庫中的表可使用不一樣的存儲方式存儲。數據庫

 2.mysql支持的存儲引擎(Mariadb-servver5.5.44)緩存

        MariaDB[(none)]> SHOW ENGINES;安全

wKiom1ckEsfSObJaAAHcJRZhs-A362.png

    說明:服務器

         MariaDB 中相似Innodb的存儲引擎實際上爲XtraDB (percona社區提供)  InnoDB的加強改進,但仍然叫作InnoDB併發

 

 

 

2、Innodb存儲引擎ide

 1.Innodb特性概述函數

    (1) 處理大量的短時間()事務;具備自動崩潰恢復特性高併發

    (2) 數據存儲於"表空間(tablespace)"中;自行管理的黑盒;其內部組織爲多個文件,表現爲一個文件

    (3) 可直接存儲於裸設備中,而無需文件系統支持

    (4)基於MVCC來支持高併發,支持全部的四個隔離級別,默認級別爲REPEATABLEREAD(可重讀功能); 間隙鎖防止幻讀;

    (5)Innodb使用匯集索引;也支持"自適應hash索引"(沒法顯示建立,InnoDB內部自行維護)

    (6)鎖粒度:行級鎖(一部份內容)

 

 2.innodb表空間存儲方式

     (1) 全部InnoDB表的數據和索引放置於同一個表空間中;表空間文件存儲於datadir定義的目錄下

      數據文件(存儲數據和索引)ibddata1, ibddata2, ...存滿了自動擴張,可限制單個表的物理空間大小

    (2) 每一個表單獨使用一個表空間存儲表的數據和索引;才能實現各類高級功能

參數:innodb_file_per_table=ON

數據文件(存儲數據和索引):tbl_name.ibd,

表格式定義(每一個表多少字段,每一個字段的名稱等信息):tbl_name.frm

注意:

    此方式存儲數據當清空表數據,而不會清空表格式;由於數據和文件使用不一樣的文件分開存儲

 

 

 

3、MyISAM存儲引擎

 1.MyISAM概述

   (1)特性

      最先的存儲引擎,也最成熟。早些服務於數據倉庫(較少的插入操做可是較多的讀操做的場景),不適用於在線事務處理的應用場景。

支持全文索引(FULLTEXTindex)

支持直接對錶數據壓縮

 支持空間函數(GIS)

不支持事務,且爲表級鎖(鎖粒度粗糙)

崩潰後沒法安全恢復,能夠手動check恢復,但時間長

      注意

          MariadbMyISAM作了加強,爲Aria存儲引擎;其支持崩潰後安全恢復

   (2)適用場景

            只讀(或者寫較少)、表較小(能夠接受長時間進行修復操做)

 

  2.數據文件存儲

每一個表有三個文件進行數據的存儲

表格式定義文件

tbl_name.frm

數據文件

tbl_name.MYD

索引文件

tbl_name.MYI

          行格式:

                dynamic變長字段動態行, fixed固定長度的行長短, compressed  壓縮後存放, compact緊緻的, redundent冗餘方式

 

 

 

4、MySQL支持的其它存儲引擎

  1.CSV:將普通的CSV(字段經過逗號分隔)做爲MySQL表使用;

  2.MRG_MYISAM:將多個MyISAM表合併成爲一個虛擬表;

  3.BLACKHOLE:相似於/dev/null,不真正存儲任何數據;

  4.MEMORY:全部數據都保存於內存中,內存表;支持hash索引;表級鎖;通常用於對臨時表採起的操做

  5.PERFORMANCE_SCHEMA:僞存儲引擎;mysql關閉會消失不見

  6.ARCHIVE:只支持SELECT和INSERT操做;支持行級鎖和專用緩存區;不支持事務;可用於數據倉庫,作不可能發生改變,歸檔保存的再也不作修改的歷史數據

  7.FEDERATED:用於訪問其它遠程MySQL服務器一個代理,它經過建立一個到遠程MySQL服務器的客戶端鏈接,並將查詢傳輸到遠程服務器執行,然後完成數據存取;在MariaDB的上實現是FederatedX

  8.其餘

OQGraphSphinxSETokuDBCassandraCONNECTSQUENCE

相關文章
相關標籤/搜索