首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Redis缓存简单查询值得吗?

用Redis缓存简单查询值得吗?
EN

Stack Overflow用户
提问于 2018-09-10 17:22:17
回答 1查看 1.8K关注 0票数 4
  1. 我想知道是否值得缓存如下的查询: 从id =1的用户中选择*
  2. 如果不是,那么复杂查询的情况也应该是如此,因为它们无论如何都将被DB缓存缓存。
  3. 用Redis缓存单个DB查询有意义吗?还是只能从缓存多个查询的结果(例如整个路由)中获益?
  4. Redis (内存中)比DB缓存(也在内存中)快。在这种情况下,在Redis中缓存单个查询也是有意义的,但我认为DB和Redis缓存应该执行类似的操作。
EN

回答 1

Stack Overflow用户

发布于 2018-09-10 18:45:29

如果应用程序可能从缓存中读取查询结果,而不是再次运行SQL查询,则查询结果值得缓存。或者,如果您需要的结果比任何SQL查询运行的速度都快。

此外,SQL查询的成本不一定会损害应用程序的性能。像SELECT * FROM users WHERE id = 1这样的SQL查询简单高效,最多只能查找一行(假设id是主键)。

如果在SQL中执行,针对大范围数据的复杂查询可能会花费更长的时间,因此读取缓存结果的相对好处将更大。

但是,即使是每小时运行一百万次的简单查询也会花费很大的代价。如果查询运行得太频繁,以致于限制了应用程序的性能,那么缓存是一个很好的策略。

有许多变量,它们取决于您特定的应用程序行为和约束。没有人能帮你回答这个问题。

  • 数据库中的数据多久更改一次,使缓存的副本过时?
  • SQL查询的效率如何?它是一个简单的查询,无论如何都会非常快,还是一个复杂的查询,在运行SQL版本时可能需要整整几秒钟?
  • 您的应用程序能够容忍运行SQL查询所需的时间吗?当然,所有的应用程序都说他们想要的结果“尽快”,但这不是一个可衡量的要求。SQL查询足够快吗?
  • 您多久运行一次查询?在一定范围内,您需要使用一些小的优化,如果查询不经常使用,那么这些优化就不值得花时间编写代码。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52262664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档