gpt4 book ai didi

mysql - 当我确定我必须从数据库中读取一些数据时,缓存和读取它是否有意义?

转载 作者:可可西里 更新时间:2023-11-01 11:33:54 24 4
gpt4 key购买 nike

一个数据库当前有一个表some_table:

conn_id     data
id1 - - - - - a
id1 - - - - - b
id2 - - - - - c
id3 - - - - - d

现在我的代码必须这样做:

do_something([id1,id2,id3,id4])

我目前正在做一个 MySQL 查询:

select * from some_table where conn_id in (id1, id2, id3, id4);

并生成这个:

{
id1 => [a,b],
id2 => [c],
id3 => [d]
}

如果我要缓存此数据,下次我这样做时,我会在缓存中找到 id1、id2 和 id3 的键。然而,由于 id4 既不存在于缓存中,也不存在于数据库中,因此我将始终需要查询数据库。

缓存这些数据是否有意义?

我可以从缓存中获取 id1、id2、id3 的数据。但是对于 id4 我会做一个 MySQL 查询:

select * from some_table where id in (id4)

哪个性能更好?一次,我可以在请求 (do_something) 中包含 200 个 ID,其中任何数字都可以不存在。

最佳答案

需要澄清的事情

  1. 当你做缓存的时候。您必须确保缓存中的数据与主数据源 (DB) 完美同步。
  2. 如果数据库中的数据发生变化,您需要使缓存失效

现在回答问题

第一次使用 select * 查询预热缓存。之后,对于每个插入或更新到您的数据库,也在您的缓存中处理它们。这样您就可以避免查询数据库以进行连续选择

关于mysql - 当我确定我必须从数据库中读取一些数据时,缓存和读取它是否有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37925987/

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