出于同样的原因,在一个应用程序中同时使用NoSQL和RDBMS是有意义的。除了NoSQL缓存之外,我还有一个RDBMS缓存。
我在考虑使用MySQL服务器和所有使用内存引擎的表。
这种做法有什么警告吗?
为了澄清,我建议这里仅使用MySQL服务器进行缓存,而不是用于我的应用程序的实际数据存储。
答案 0 :(得分:5)
内存表完全存储在内存中,因此速度非常快。
它使用的哈希索引也非常快,非常适合临时表和查找。
内存表具有表级锁,因此如果需要并发,则这是一个问题
无交易
当服务器关闭或崩溃时所有行都丢失
尽管表定义保持不变,但数据将全部消失。
您可以查看official documents on the Memory Engine
修改强>
内存存储引擎是缓存目的的理想选择。
以下是Memory Engine适用的一些内容:
CREATE TEMPORARY TABLE
因为内存表仍然存在(如果这是你需要的)有一些消极因素:
如果您需要缓存,总而言之,内存引擎应该是您的最佳选择。
答案 1 :(得分:0)
另一个原因,
与磁盘空间相比,RAM受到很大限制
你可以拥有高达TB的磁盘驱动器,
但几乎不能让记忆力上升到太字节
答案 2 :(得分:0)
如果你得到了$$,关于MySQL和InnoDB的following article能力将会引起很大的兴趣。
它胜过任何类型的缓存,内存引擎或memcached。缺点是 - 它需要ram,很多。