關於mysql執行引擎,一個簡單直白的歸納

在缺省狀況下,MySQL支持三個引擎:ISAM、 MyISAM和HEAP。另外兩種類型InnoDB和Berkley(BDB),也經常可使用。mysql

MyISAM: 優點 – 查詢速度快 – 數據和索引壓縮問題 – 表級鎖 – 數據丟失sql

InnoDB: 優點 – 行級鎖 – 事務支持 – 數據安全問題 – 數據文件龐大 – 啓動慢 – 不支持FULLTEXT索引安全

ISAM : 執行讀取操做的速度很快,並且不佔用大量的內存和存儲資源。不支持事務處理,也不可以容錯併發

 

InnoDB性能

InnoDB是一個健壯的事務型存儲引擎,這種存儲引擎已經被不少互聯網公司使用,爲用戶操做很是大的數據存儲提供了一個強大的解決方案。個人電腦上安裝的MySQL 5.6.13版,InnoDB就是做爲默認的存儲引擎。InnoDB還引入了行級鎖定和外鍵約束,在如下場合下,使用InnoDB是最理想的選擇:優化

1.更新密集的表。InnoDB存儲引擎特別適合處理多重併發的更新請求。
2.事務。InnoDB存儲引擎是支持事務的標準MySQL存儲引擎。
3.自動災難恢復。與其它存儲引擎不一樣,InnoDB表可以自動從災難中恢復。
4.外鍵約束。MySQL支持外鍵的存儲引擎只有InnoDB。
5.支持自動增長列AUTO_INCREMENT屬性。.net

通常來講,若是須要事務支持,而且有較高的併發讀取頻率,InnoDB是不錯的選擇。htm

MEMORYblog

使用MySQL Memory存儲引擎的出發點是速度。爲獲得最快的響應時間,採用的邏輯存儲介質是系統內存。雖然在內存中存儲表數據確實會提供很高的性能,但當mysqld守護進程崩潰時,全部的Memory數據都會丟失。得到速度的同時也帶來了一些缺陷。它要求存儲在Memory數據表裏的數據使用的是長度不變的格式,這意味着不能使用BLOB和TEXT這樣的長度可變的數據類型,VARCHAR是一種長度可變的類型,但由於它在MySQL內部當作長度固定不變的CHAR類型,因此可使用。索引

通常在如下幾種狀況下使用Memory存儲引擎:

1.目標數據較小,並且被很是頻繁地訪問。在內存中存放數據,因此會形成內存的使用,能夠經過參數max_heap_table_size控制Memory表的大小,設置此參數,就能夠限制Memory表的最大大小。

2.若是數據是臨時的,並且要求必須當即可用,那麼就能夠存放在內存表中。

3.存儲在Memory表中的數據若是忽然丟失,不會對應用服務產生實質的負面影響。

emory同時支持散列索引和B樹索引。B樹索引的優於散列索引的是,可使用部分查詢和通配查詢,也可使用<、>和>=等操做符方便數據挖掘。散列索引進行「相等比較」很是快,可是對「範圍比較」的速度就慢多了,所以散列索引值適合使用在=和<>的操做符中,不適合在<或>操做符中,也一樣不適合用在order by子句中。

 

文章內容源至:

MySQL存儲引擎總結  http://www.jb51.net/article/55849.htm  

MySQL執行引擎有哪些 http://blog.csdn.net/kai_wei_zhang/article/details/8063532 

推薦連接: 

mysql5.5 InnoDb存儲引擎的配置和優化 http://www.jb51.net/article/42949.htm 

相關文章
相關標籤/搜索