mysql的存儲引擎


mysql支持的存儲引擎

一:查詢數據庫支持的存儲引擎

執行:  show engines;

說明

  engine:引擎名稱。

  suppot:是否支持。

  comment:說明。

  transactions:是夠支持事務。

  xa:是否支持XA事務。

  savepoints:是否支持保存savepoints之間的內容。

 

二:常用的引擎的介紹(常用的MyISAM和InnoDB)

.frm文件         //存儲表結構的,任何存儲引擎都具備的。

1:MyISAM

   mysql5.5之前默認的存儲引擎,由MYD和MYI組成。

  查看數據庫的data目錄/數據庫名稱/,在查找相對應的表名。

  frm,myd,myi這三個結尾的文件。

  .myd  //數據庫文件

  .myi  //索引文件  又叫非聚集索引

 

  特性:

    並發性與鎖級別-表解鎖

    支持全文索引

    支持數據壓縮   命令:進入到mysql的bin文件夾, .\myisampack.exe -b -f "需要壓縮的test.MYI地址" (此命令實在Windows運行)。

    運行完以后,會出現一個以OLD結尾的文件,刪除OLD可能會出現問題。需要恢復 CHECK table 表名,REPAIR table 表名      

  

  適用場景:

    非事務的類型

    只讀類應用,讀取數據的速度快

    空間類型(坐標,空間函數)

 

2:innodb

  mysql5.5以后默認的存儲引擎,innodb_file_per_table  on:表示獨立表空間,OFF:表示系統表空間。5.6之前是系統表空間,之后為獨立表空間。

  獨立表空間:.frm .ibd  存儲數據+索引。 可以通過 optimize table 表名 .ibd收縮數據文件,同時可以向多個文件刷新數據。

  系統表空間:.frm是放在數據庫的文件下的。 .ibdata1是放在data文件夾下的,表公用的,會產生IO的瓶頸。 系統表空間無法簡單的收縮文件大小

  

  建議使用獨立表空間。

 

  特性:

    是一種事務性存儲引擎。完全支持事務的ACID特性。執行行級鎖,並發程度高。Redo Log和Undo Log。

  適用場景:

    大多數的OLTP應用。

 

  比較

  

 

 

3:CSV

  數據以文本方式存儲,表的字段不能為空,不能有主鍵。

  .frm , .csv數據的內容, .csm存儲表的元數據 。

  使用文本編輯器可以直接編輯.csv數據,然后保存,在數據庫里面執行flush  tables;

  注:要在最后一行數據回車一下,要不然最后一條數據不展示。

  在excel里面操作提示兼容性問題,無法操作成功,編輯完以后修復一下,可能是excel版本的問題吧。

  特點:

    以CSV格式進行數據存儲,所有列的字段都不能為null,不支持索引,可以對數據文件在線編輯。

 

4:Archive

  以zlib對表數據進行壓縮,磁盤I/O更少,數據存儲在.ARZ。

  .frm , .ARZ數據的內容。

  特點:

    只支持insert和select操作,只允許在自增ID列上加索引。

  使用場景:

    日志和數據采集應用

 

5:Memory

  在data文件夾里面只有一個frm。

  數據保存在內存中,支持hash索引和BTree索引,所有字段都是固定的長度varchar(10)=char(10),不支持Blog和Text等字段

  使用表級索,最大有max_heap_table_size 決定。 重啟會丟失數據。

  在系統使用臨時表的時候,超過限制會使用MyISAM,未超過的時候使用Memory

  

  臨時表:在同一個session(會話)里面,才能使用。重啟服務會丟失數據。

 

  應用場景:mysql后台服務使用Memory

 

 

6:Federated

  訪問遠程的數據庫表,本地只保存數據庫結構和連接信息,數據保存在遠程的服務器中。在本地只保存.frm

  默認不是開啟的引擎,在my.ini  增加 federated=1,重啟。

  

  只能用命令創建。create table ‘aaa’(里面的字段,要和連接的服務器一樣) engine=federated connection='mysql://用戶名:密碼@地址:IP/數據庫名/表名'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM