gpt4 book ai didi

mysql搜索和索引性能

转载 作者:行者123 更新时间:2023-11-29 05:43:01 24 4
gpt4 key购买 nike

假设您有一篇博客文章,用户可以订阅评论在专用于管理订阅的表上搜索速度更快,例如:ID、帖子、用户

或者在用户表中有一个带有他们的订阅的字段会更快:订阅=|2|4|18|21|33|

或者在订阅该帖子的用户的帖子表中有一个字段会更快:用户订阅=|1|2|4|6|9|

最佳答案

最好有一个单独的表 订阅,有ID, Post, User

(假设 ID 是该表的自动增量 PK,将 FK 发布到表 PostsUser 将 FK 发布到表 用户)

无论从逻辑角度(订阅是它自己的实体,因此它自己的表)至于数据库性能,单独的表都是可行的方法。

这是一个名为 normalization 的进程,它将允许您进行联接并执行复杂的查询,例如“给我最近订阅此帖子的 5 个用户”或“获取该用户的所有已更改的帖子自从他上次访问以来”。

它也不会限制您的最大订阅数(用户表中的固定字段始终有一个长度)。

它将允许您稍后轻松扩展您的模型。例如,不同类型的订阅:通过 RSS、邮件、收藏的帖子获得通知......

最后但同样重要的是,由于您使用的是关系数据库 MySQL,这种工作方式(关系,明白吗?)在 MySQL 中要快得多。它允许索引(快速搜索),外键(用户不能订阅不存在的帖子,如果帖子被删除,所有订阅都会得到自动删除) 等等。

关于mysql搜索和索引性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5031563/

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