为什么不像memcached那样使用MySQL呢?

发布于 2024-11-25 19:40:54 字数 194 浏览 0 评论 0原文

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

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

这种方法有什么警告吗?

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

For the same reason it makes sense to use both NoSQL and RDBMSs in one application, It makes sense to me to have an RDBMS cache besides NoSQL cache.

I was thinking about using a MySQL server with all tables using the memory engine.

Is there any caveat to this approach?

Just to clarify, I am suggesting here to use a MySQL server for caching purposes only, not for the actual data storage of my application.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

红玫瑰 2024-12-02 19:40:54

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

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

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

没有事务

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

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

您可能需要查看有关内存引擎的官方文档

编辑:

内存存储引擎是缓存目的的良好候选者。

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

  • 查找/映射表
  • 缓存定期添加的数据的结果
  • 以用于数据分析目的
  • 会话管理
  • 低延迟操作
  • 优于其他策略,例如 CREATE TEMPORARY TABLE内存表仍然存在(如果这是您需要的)

有一些缺点:

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

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

Memory tables are stored entirely in memory, so it is very fast.

It uses hash indexes which are also very fast, great for temp table purposes and lookups.

Memory tables have table level locks, so if concurrency is required, this is a problem

No transactions

When server shuts down or crashes ALL ROWS ARE LOST

though table definition stays the same, the data would be all gone.

You may want to check out the official documents on the Memory Engine

EDIT:

The Memory Storage Engine is a good candidate for caching purposes.

The following are a few things that the Memory Engine is good for:

  • Lookup/mapping tables
  • caching results of periodically added data
  • for data analysis purposes
  • Sessions management
  • Low latency operations
  • Better than other strategies such as CREATE TEMPORARY TABLE as the Memory table persists (if that is what you need)

There are a few negatives:

  • It does not support TEXT or BLOB columns, the table would be converted to a MyISAM on disk if such an event happens.
  • The table should not hold too much data, as it takes up resources that can otherwise be allocated to indexes/query caches

All in all the memory engine should be the best choice for you if you need caching.

最初的梦 2024-12-02 19:40:54

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

another reason,
RAM is much limited compared to disk space,
you can have disk drive up to terabytes,
but hardly can let memory goes up-to terabytes

羁客 2024-12-02 19:40:54

如果您获得了$$,以下文章< /a> 关于 MySQL 和 InnoDB 的功能将会引起人们的高度兴趣。

它的性能优于任何类型的缓存、内存引擎或内存缓存。缺点是 - 它需要大量的内存。

If you got the $$, the following article about MySQL and InnoDB's capabilities will be of high interest.

It outperforms any sort of cache, memory engine or memcached. Drawback is - it requires ram, lots of it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文