出于同样的原因,在一个应用程序中同时使用 NoSQL 和 RDBMS 是有意义的,对我来说,除了 NoSQL 缓存之外还有一个 RDBMS 缓存是有意义的。
我正在考虑使用带有内存引擎的所有表的 MySQL 服务器。
这种方法有什么警告吗?
澄清一下,我在这里建议仅将 MySQL 服务器用于缓存目的,而不是用于我的应用程序的实际数据存储。
出于同样的原因,在一个应用程序中同时使用 NoSQL 和 RDBMS 是有意义的,对我来说,除了 NoSQL 缓存之外还有一个 RDBMS 缓存是有意义的。
我正在考虑使用带有内存引擎的所有表的 MySQL 服务器。
这种方法有什么警告吗?
澄清一下,我在这里建议仅将 MySQL 服务器用于缓存目的,而不是用于我的应用程序的实际数据存储。
内存表完全存储在内存中,因此速度非常快。
它使用的哈希索引也非常快,非常适合临时表目的和查找。
内存表有表级锁,所以如果需要并发,这是个问题
没有交易
当服务器关闭或崩溃时,所有行都丢失
尽管表定义保持不变,但数据将全部消失。
您可能需要查看有关 Memory Engine 的官方文档
编辑:
内存存储引擎是缓存目的的理想选择。
以下是内存引擎的一些优点:
CREATE TEMPORARY TABLE
内存表等其他策略更好(如果这是您需要的)有一些负面影响:
总而言之,如果您需要缓存,内存引擎应该是您的最佳选择。
如果你得到了 $$,那么下面关于 MySQL 和 InnoDB 功能的文章将会非常有趣。
它优于任何类型的缓存、内存引擎或 memcached。缺点是 - 它需要内存,很多。
另一个原因,
与磁盘空间相比,RAM 非常有限,
您可以拥有高达 TB 的磁盘驱动器,
但几乎不能让内存达到 TB