gpt4 book ai didi

mysql - 在 MySQL 中执行 LEFT JOIN 与缓存数据的成本

转载 作者:可可西里 更新时间:2023-11-01 11:30:05 25 4
gpt4 key购买 nike

所以我有一个包含以下 MySQL 表的项目:

内容表

+------------+------------+
| content_id | some infos |
+------------+------------+
| 1 | ... |
| 2 | ... |
+------------+------------+

标题表

+----+----------+---------+------------+--------------+
| id | title | user_id | content_id | other things |
+----+----------+---------+------------+--------------+
| 1 | "blabla" | 1 | 1 | ... |
| 2 | "blabla" | 59 | 25 | ... |
+----+----------+---------+------------+--------------+

为了快速恢复系统,多个用户给一个内容一个标题。但是每次我选择一个内容时,我都需要找到合适的标题(我选择了最关注的用户女巫已经发布了这个内容的标题)。

因此,为了做到这一点,我看到了 2 个解决方案:

  • 我可以在 content 表上执行 SELECT,在 title 表上执行 LEFT JOIN,在我的 user 表上执行一些 MAX (nb_subscribers ) ...
  • 我可以仅对内容 执行 SELECT,然后使用像 Redis 这样的缓存系统将标题缓存大约 1 天(在这种情况下,它需要一个新的 MySQL 调用,如果找不到标题)

主要问题是这些内容将被加载很多次,如果 LEFT JOIN 方法需要大量时间来处理,我想知道您的意见。

最佳答案

我认为在 contenttitle 表之间执行 LEFT JOIN 没有任何问题,假设后者有一个索引content_id 列:

SELECT c.*, t.*
FROM content c
LEFT JOIN title t
ON c.content_id = t.content_id
-- can also join to user table if needed

关于mysql - 在 MySQL 中执行 LEFT JOIN 与缓存数据的成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41667445/

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