亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

文字

MySQL常用存儲引擎

MySQL常用存儲引擎之MyISAM

MySQL 5.5 之前版本默認存儲引擎,在排序、分組等操作中,當數(shù)量超過一定大小之后,由查詢優(yōu)化器建立的臨時表。

MyISAM 存儲引擎表由 MYD (表數(shù)據(jù)) 、MYI (表索引) 與 frm (表結構) 組成。

MyISAM 特性

  • 并發(fā)性與鎖級別

表級鎖

  • 表損壞修復

check table tableName
repair table tabelName
  • MyISAM 表支持的索引類型

fulltext

  • MyISAM表支持數(shù)據(jù)壓縮

myisampack

壓縮后的表無法進行寫操作,只能進行讀操作。

MyISAM限制

在 MySQL 版本小于 5.0 時,默認表大小為 4G,如存儲大表則要修改表的 MAX_RowsAVG_ROW_LENGTH 參數(shù)。

在MySQL版本大于5.0時,默認支持為 256TB。

MyISAM 適用場景

非事務型應用

只讀類應用

空間類的應用

MySQL常用存儲引擎之InnoDB

MySQL5.5 及之后版本默認存儲引擎。

InnoDB 使用表空間進行數(shù)據(jù)存儲

  • 如果數(shù)據(jù)庫的配置參數(shù) innodb_file_pre_table => on,那么創(chuàng)建后的 InnoDB 引擎的表將產(chǎn)生 tableName.frmtableName.ibd 文件。

  • 如果數(shù)據(jù)庫的配置參數(shù) innodb_file_pre_table => off,那么創(chuàng)建后的  InnoDB 引擎的表將產(chǎn)生 ibdata*(共享表空間) 和 tableName.frm

那么,系統(tǒng)表空間和獨立表空間要如何選擇呢?

  • innodb_file_pre_table => off 建立的表情況下,系統(tǒng)表空間無法簡單的收縮系統(tǒng)文件大小,造成大量的空間浪費,并且會產(chǎn)生大量的磁盤碎片,從而降低系統(tǒng)的性能。

  • 獨立表空間可以通過 optimize table 命令收縮系統(tǒng)文件。

  • 系統(tǒng)表空間會產(chǎn)生IO瓶頸

  • 獨立表空間可以同時向多個文件刷新數(shù)據(jù)

建議對 InnoDB 使用獨立表空間,即 innodb_file_pre_table => on

InnoDB 特性

  • InnoDB 是一種事務性存儲引擎

  • 完全支持事務的 ACID 特性

  • InnoDB 支持行級鎖

行級鎖可以最大程度的支持并發(fā)

行級鎖是有存儲引擎層實現(xiàn)

  • 鎖的類型:

  • 共享鎖(也稱讀鎖)

  • 獨占鎖(也稱寫鎖)

  • InnoDB 狀態(tài)檢查

show engine innodb status
  • 適用場景

InnoDB適用于大多數(shù) OLTP 應用

MySQL常用存儲引擎之CSV

文件系統(tǒng)存儲特點

數(shù)據(jù)以文本方式存儲在文件中,他們分別包含有如下文件:

.csv 文件存儲表內(nèi)容

.csm 文件存儲標的元數(shù)據(jù)如表狀態(tài)和數(shù)據(jù)量

.frm 文件存儲表結構信息

CSV文件存儲的特點
  • 以 csv 格式進行數(shù)據(jù)存儲

  • 所有列必須都是不能為 null 的數(shù)據(jù)

  • 不支持索引

  • 可以對數(shù)據(jù)文件直接編輯

適用場景

適合作為數(shù)據(jù)交換的中間表

MySQL常用存儲引擎之Archive

以 zlib 對表數(shù)據(jù)進行壓縮,磁盤 I/O更少

數(shù)據(jù)存儲在 tableName.ARZ 為后綴的文件中

Archive 文件存儲特點

只支持 insertselect 操作

只允許在自增 ID 列上加索引

使用場景

日志和數(shù)據(jù)采集類應用

MySQL常用存儲引擎之Memory

文件系統(tǒng)存儲特點

也稱 heap 存儲引擎,所以數(shù)據(jù)保存在內(nèi)存中。

功能特點

  • 支持 hash 索引(等值查找快)和 Btree 索引(范圍查找快)

  • 所有字段都為固定長度,例如:varchar(10) = char(10)

  • 不支持 BLOB/TEXT 等大字段

  • Memory 存儲引擎使用表級鎖

  • 最大大小由 max_heap_table_size 參數(shù)決定

使用場景

  • 用于查找或者是映射表,例如:郵編和地區(qū)的對應表

  • 用于保存數(shù)據(jù)分析中產(chǎn)生的中間表

  • 用于緩存周期性聚合數(shù)據(jù)的結果表

Memory 數(shù)據(jù)易丟失,所以要求數(shù)據(jù)可再生。

MySQL常用存儲引擎之Federated

默認禁止,啟用需要在啟動時增加 federated 參數(shù)。

mysql://user_name[:password]@host_name[:port_num]/db_name/tbl_name

功能特點

  • 提供了訪問遠程MySQL服務器上表的方法

  • 本地不存儲數(shù)據(jù),數(shù)據(jù)全部放到遠程服務器上

  • 本地需要保存表結構和遠程服務器的連接信息


上一篇: 下一篇: