gpt4 book ai didi

mysql - 值得用 Redis 缓存简单的查询吗?

转载 作者:IT王子 更新时间:2023-10-29 06:12:50 25 4
gpt4 key购买 nike

  1. 我想知道是否值得缓存如下查询:

    SELECT * FROM users WHERE id = 1

  2. 如果不是,那么复杂查询也应该是这种情况,因为它们无论如何都会被数据库缓存缓存。

  3. 使用 Redis 缓存单个数据库查询是否有意义?或者我只会从缓存多个查询的结果中获益(例如,整条路线)

  4. Redis(在内存中)是否比数据库缓存(也在内存中)更快。在那种情况下,在 Redis 中缓存单个查询也是有意义的,但我认为数据库和 Redis 缓存的性能应该相似。

最佳答案

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

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

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

但即使一个简单的查询每小时运行一百万次也可能代价高昂。如果您过于频繁地运行查询以致于它阻碍了您的应用程序性能,那么缓存是一个很好的策略。

变量很多,它们取决于您的特定应用行为和约束。没有人可以为您回答这个问题。

  • 数据库中的数据多久更改一次,从而使缓存的副本过时?
  • SQL 查询的效率如何?它是一个无论如何都会非常快的简单查询,还是一个在您运行 SQL 版本时可能需要整整几秒钟的复杂查询?
  • 您的应用是否能够承受运行 SQL 查询所需的时间?当然,所有应用程序都表示他们希望“尽快”获得结果,但这不是一个可衡量的要求。 SQL 查询足够快吗?
  • 您多久运行一次查询?在一定规模下,您需要使用较小的优化,如果不经常使用查询,则不值得花时间编写代码。

关于mysql - 值得用 Redis 缓存简单的查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52262664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com