gpt4 book ai didi

php - 如何减少规范化数据库中的查询数量?

转载 作者:太空宇宙 更新时间:2023-11-03 11:11:27 26 4
gpt4 key购买 nike

想象一个用于文章的表格。除了主要查询:

SELECT * From articles WHERE article_id='$id'

我们还需要其他几个查询来获取

SELECT * FROM users WHERE user_id='$author_id' // Taken from main query

SELECT tags.tag
FROM tags
INNER JOIN tag_map
ON tags.tag_id=tag_map.tag_id
WHERE article_id='$id'

以及更多关于类别、相似文章等的查询

问题 1:用 PHP 单独执行这些查询并处理给定结果的最佳方式是什么,还是有组合它们的方式?

问题 2: 在没有多对多关系的情况下(例如,由 tag_id、category_id、author_id 标识的每篇文章都有一个标签、类别、作者);最好(最快)的方法是从表中检索数据。

最佳答案

如果所有关系都是一对多的,那么您可以很容易地在一个查询中检索所有这些数据,例如

SELECT
[fields required]
FROM
articles a
INNER JOIN
users u ON a.author_id=u.user_id
INNER JOIN
tag_map tm ON tm.article_id=a.article_id
INNER JOIN
tags t t.tag_id=tm.tag_id
WHERE
a.article_id='$id'

这通常比单独进行三个查询更快,因为您的表已正确索引,因为 MySQL 就是为此而构建的!它将节省两次往返数据库的时间和相关的开销。

关于php - 如何减少规范化数据库中的查询数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8270093/

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