MYSQL内存(MEMORY)表与Memcache访问速度测试

分享于:2017-10-17 20:09:29

一、什么是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 (超时时间),无需自己管理