4

出于同样的原因,在一个应用程序中同时使用 NoSQL 和 RDBMS 是有意义的,对我来说,除了 NoSQL 缓存之外还有一个 RDBMS 缓存是有意义的。

我正在考虑使用带有内存引擎的所有表的 MySQL 服务器。

这种方法有什么警告吗?

澄清一下,我在这里建议仅将 MySQL 服务器用于缓存目的,而不是用于我的应用程序的实际数据存储。

4

3 回答 3

6

内存表完全存储在内存中,因此速度非常快。

它使用的哈希索引也非常快,非常适合临时表目的和查找。

内存表有表级锁,所以如果需要并发,这是个问题

没有交易

当服务器关闭或崩溃时,所有行都丢失

尽管表定义保持不变,但数据将全部消失。

您可能需要查看有关 Memory Engine 的官方文档

编辑:

内存存储引擎是缓存目的的理想选择。

以下是内存引擎的一些优点:

  • 查找/映射表
  • 缓存周期性添加数据的结果
  • 用于数据分析目的
  • 会话管理
  • 低延迟操作
  • CREATE TEMPORARY TABLE内存表等其他策略更好(如果这是您需要的)

有一些负面影响:

  • 它不支持 TEXT 或 BLOB 列,如果发生此类事件,该表将转换为磁盘上的 MyISAM。
  • 该表不应包含太多数据,因为它占用了本来可以分配给索引/查询缓存的资源

总而言之,如果您需要缓存,内存引擎应该是您的最佳选择。

于 2011-07-22T13:20:01.700 回答
0

如果你得到了 $$,那么下面关于 MySQL 和 InnoDB 功能的文章将会非常有趣。

它优于任何类型的缓存、内存引擎或 memcached。缺点是 - 它需要内存,很多。

于 2011-07-22T13:40:58.793 回答
0

另一个原因,
与磁盘空间相比,RAM 非常有限,
您可以拥有高达 TB 的磁盘驱动器,
但几乎不能让内存达到 TB

于 2011-07-22T13:24:27.577 回答