cache + db 性能

来源:互联网 发布:免费矢量绘图软件 编辑:程序博客网 时间:2024/06/11 08:51

最近自己实现了一个cache, 支持lru淘汰、数据统一时间的expire机制,比如在加入cache 5分钟后flush到db中。


value大小为15KB左右, innodb引擎。

测试了一下性能, 设置约 90%的cache命中(淘汰)率, 每秒约

250次左右写, 2500次左右读。

突然发现http://my.oschina.net/costaxu/blog/108568叙述的mysql性能数据; 自己实现的cache和mysql本身的性能基本没啥区别。

那么这个cache有什么用呢?


问题在于测试过程中限定了90%的命中, 那么读次数 : 写次数 就约为10 : 1。  而这个读写性能恰好与mysql相当。



如果命中率为95%,那么cache能支持每秒250次写, 5000次读。

如果命中率为99%,那么cache能支持每秒250次写, 25000次读。

。。。。。。。。。。。。。。。。。。。。。。。。读的极限值约为100w次。单机内存hash_map的存取次数


1) 如何提高mysql写性能?   数据分片到不同的mysql实例。 比如数据分布到2个实例上, 那么相当于cache的写能力就提高1倍至 500次/秒。

2) mysql写性能固定的情况下, 如何提高cache的写性能、保证cache的可用性? 可以观察用户高峰规律, 比如2小时后自动expire, 可以避免短时间峰值的同时会一起expire引起性能恶化:即时间稍微设长; 但是设长之后,增大了数据丢失的概率。




对比此时的mysql存储的表格式为<key, blob>, myisam性能更好。 innodb提供的事务是多余的。

innodb支持行锁,为什么写性能还不如myisam呢?

0 0
原创粉丝点击