通常使用MEMORY涉及到以下特性:
1.操作相關的短暫的,非重要數(shù)據(jù)的管理或者cache,當MySQL進程夯住或服務重啟,MEMORY表的數(shù)據(jù)就會丟失。
2.內存存儲訪問快速,并且延遲低。數(shù)據(jù)可以填充到內存不會導致操作系統(tǒng)swap到虛擬內存。
3.只讀或者讀多的數(shù)據(jù)訪問模式。
MySQL Cluster提供和MEMORY相似的功能來提高性能,但提供MEMORY不支持的額外的特性,例如:
1.行級鎖并且多線程操作,client降低爭用。
2.可擴展性
3.數(shù)據(jù)持久性的后臺操作
4.shared-nothing的結構,多host操作不會有單點錯誤。
5.自動數(shù)據(jù)分布,應用程序不需要參與用戶sharding或者分區(qū)解決方案。
6.支持可變長字段,MEMORY不支持。
如果MEMORY表hash索引的列包含在很多索引中,date表字段的值會影響性能。性能影響和被幾個索引引用有關。你可以使用b樹索引來避免問題。
MEMORY表可以是非唯一的key。
索引列的值可以是null
MEMORY表的物理特性:
MEMORY存儲引擎都有個相關的磁盤文件,用來保存表定義。表名.frm。
MEMORY表有以下幾個特性:
1.MEMORY表使用小的block,表使用動態(tài)hash存儲,沒有額外的key空間。刪除行把空間放到一個鏈表。當你插入的時候會重新使用。MEMORY表在插入和刪除混合沒有什么問題。
2.內存表固定長度??勺冮L度類型比如varchar也以固定長度保存。
3.內存表不能包含BLOB,TEXT列
4.MEMORY支持AUTO_INCREMENT列
5.沒有臨時內存表可以被所有客戶端共享,可其他臨時表一樣。
新聞名稱:什么時候可以考慮使用MySQLMEMORY引擎
瀏覽路徑:
http://weahome.cn/article/gijjie.html