Memory存儲引擎將表的數據存放在內存中,默認使用哈希索引,memcache同樣是使用哈希的方式將數據存在內存中,不過它們還是有比較大的區別的,我列幾條:
1.MEMORY表使用固定的記錄長度格式,像VARCHAR這樣的可變長度類型將轉換為固定長度類型在MEMORY表中存儲,同樣也不能包含BLOB或TEXT列,memcache存貯的值是可變的;
2.MEMORY支持AUTO_INCREMENT列,memcache不支持key值自增長,需要程序來實現;
3.MEMORY如果刪除行,內存表不會回收內存,只有整張表全部刪除的時候,才進行內存回收;
4.MEMORY表支持INSERT DELAYED;
優點:
MySQL Memory: 適合對 cache 數據進行Select條件查詢。
MemCached: 可以設置 exptime (超時時間),無需自己管理,另外memcached讀寫速度是 mysql memory table 3倍左右
缺點:
MySQL Memory: 占內容空間大,同樣數據量比較
MemCached: 只能進行key-value查詢