MySQL存儲引擎

1. 查看命令

#看你的mysql如今已提供什麼存儲引擎:
mysql> show engines;mysql

#看你的mysql當前默認的存儲引擎:
mysql> show variables like '%storage_engine%';redis

2.各個引擎簡介

一、InnoDB存儲引擎
InnoDB是MySQL的默認事務型引擎,它被設計用來處理大量的短時間(short-lived)事務。除非有很是特別的緣由須要使用其餘的存儲引擎,不然應該優先考慮InnoDB引擎。行級鎖,適合高併發狀況

二、MyISAM存儲引擎
MyISAM提供了大量的特性,包括全文索引、壓縮、空間函數(GIS)等,但MyISAM不支持事務和行級鎖(myisam改表時會將整個表全鎖住),有一個毫無疑問的缺陷就是崩潰後沒法安全恢復。

三、Archive引擎
Archive存儲引擎只支持INSERT和SELECT操做,在MySQL5.1以前不支持索引。
Archive表適合日誌和數據採集類應用。適合低訪問量大數據等狀況。
根據英文的測試結論來看,Archive表比MyISAM表要小大約75%,比支持事務處理的InnoDB表小大約83%。

四、Blackhole引擎
Blackhole引擎沒有實現任何存儲機制,它會丟棄全部插入的數據,不作任何保存。但服務器會記錄Blackhole表的日誌,因此能夠用於複製數據到備庫,或者簡單地記錄到日誌。但這種應用方式會碰到不少問題,所以並不推薦。

五、CSV引擎
CSV引擎能夠將普通的CSV文件做爲MySQL的表來處理,但不支持索引。
CSV引擎能夠做爲一種數據交換的機制,很是有用。
CSV存儲的數據直接能夠在操做系統裏,用文本編輯器,或者excel讀取。

六、Memory引擎
若是須要快速地訪問數據,而且這些數據不會被修改,重啓之後丟失也沒有關係,那麼使用Memory表是很是有用。Memory表至少比MyISAM表要快一個數量級。(使用專業的內存數據庫更快,如redis)

七、Federated引擎
Federated引擎是訪問其餘MySQL服務器的一個代理,儘管該引擎看起來提供了一種很好的跨服務器的靈活性,但也常常帶來問題,所以默認是禁用的。

sql

3.MyISAM和InnoDB對比

innodb 索引 使用 B+TREE myisam 索引使用 b-tree
innodb 主鍵爲聚簇索引,基於聚簇索引的增刪改查效率很是高。數據庫

 

4.擴展

Percona 爲 MySQL 數據庫服務器進行了改進,在功能和性能上較 MySQL 有着很顯著的提高。該版本提高了在高負載狀況下的 InnoDB 的性能、爲 DBA 提供一些很是有用的性能診斷工具;另外有更多的參數和命令來控制服務器行爲。

該公司新建了一款存儲引擎叫xtradb徹底能夠替代innodb,而且在性能和併發上作得更好,

阿里巴巴大部分mysql數據庫其實使用的percona的原型加以修改。
AliSql+AliRedis安全

相關文章
相關標籤/搜索