【发布时间】:2014-03-30 18:07:34
【问题描述】:
假设我有posts、post_tags 和post_categories 表。在帖子的页面上,我从 url 中获取 id,并且需要使用关联的表格找到帖子的信息。标签和类别是可选的,因此,有些帖子既没有标签,也没有类别。
Q1如果帖子在 post_tags 和 post_categories 表中没有匹配的行,与行是否存在相比,连接是否会“发生”,并且是否具有相同的资源使用情况?
Q2 如果发生连接,如果我进行第一次查询,获取帖子的类型,是否会更好,因为我可以检查它是否有标签和/或类别,那么可以选择进行连接查询还是只查找帖子的信息而不尝试连接到其他表? 我认为,虽然有一个查询并获取所有数据比进行多个查询更好,但也许第一个查询找出确切的类型,对于没有标签和/或帖子的帖子,它会减少数据库的负载。
posts 表大约有几百万行。
编辑
我正在左连接
表格结构
posts table
id, title, content
post_categories
id, post_id, category_id,
post_tags
id, post_id, tag_id,
categories
id, name
tags
id, name
谢谢
【问题讨论】:
-
Q1:哪个
JOIN? SQL 中有不同类型的JOIN。 Q2:取决于你想要什么。结论:请发布您的表格结构以及您的全部问题(即您要实现的目标),而不是过早地进行优化。