一、什么是MYSQL内存(MEMORY)表
内存表使用哈希散列索引把数据保存在内存中,因此具有极快的速度,适合缓存中小型数据库。当MYSQL重启,表中的数据会全部丢失。
二、内存表的优缺点
优点:读写速度要比普通表要快,速度相差几十到百倍。与Memcache相比,据说要比Memcache速度要快3倍,这是本次测试的主要目的。
缺点:占内容空间大,同样数据量比较:以1123628记录,单条记录为344.0 Bytes
MemCache MyISAM Memory
43.4M 195.02M 906.11M
三、同样数据量写入Memcache和Memory时间比较:以1123628记录,单条记录为344.0 Bytes
MemCache MyISAM Memory
168.9534秒 忽略 247.4989秒
四、同样数据对访问比较
随机从数据库中抽样100个单条记录,进行简单的对比。
Memcache MyISAM Memory
1 0.075550秒 40.36189秒 12.92349秒
2 0.113249秒 25.06382秒 12.74031秒
3 0.035418秒 25.41094秒 13.55705秒
4 0.022397秒 21.73126秒 7.729274秒
5 0.023066秒 21.70093秒 7.991715秒
五、总结
根据上面的测试结果,对于简单的数据访问(键值/访问比较),同等的数据量和同等的访问频率,所用的时间
Memcahe < Memory < MyISAM
同时,第二点提出本次测试的目的,数据表明,简单的访问(键值/访问比较),Memcache是要比Memory速度要快。
Performance compare:
memcached 1.2.0
MySQL 5.0.26 with MEMORY (heap) engine
记录数:50万~100万条
单机,client 从另外一台机访问
数据:单条 0.1K左右
memcached set/get 15,000 / s
MySQL memory table: insert/select 5,000 / s
结论:
memcached 读写速度是 mysql memory table 3倍左右
优点:
MySQL: 适合对 cache 数据进行Select条件查询。
MemCached: 可以设置 exptime (超时时间),无需自己管理