gpt4 book ai didi

php - MySQL 头痛,我应该还是不应该?

转载 作者:搜寻专家 更新时间:2023-10-30 21:48:32 25 4
gpt4 key购买 nike

我有一个分类网站。我正在使用 SOLR 来索引和存储数据。然后我还有一个 MySQL 数据库,其中包含一些关于我不存储或索引的分类的更多信息。

现在,我有一个非常规范化的数据库,其中包含 4 个表。

每当在网站上搜索广告时,SOLR 都会进行搜索并返回一个 ID_numbers 数组,然后用于查询 mysql。所以 solr 返回 id:s,然后用于从 mysql 数据库中获取所有具有这些 id:s 的广告。

现在,我的表之间的所有 JOIN 和关系让我很头疼。

除了易于维护之外,拥有规范化数据库还能得到什么?

我能告诉你吗,将所有信息存储到一个包含大约 50 列的表中。

因此,为了找到一个广告并展示它,而不是这样:

SELECT 
category_option.option_name,
option_values.value
FROM classified, category_option, option_values
WHERE classified.classified_id=?id
AND classified.cat_id=category_options.cat_id
AND option_values.option_id=category_options.option_id

我可以用这个:

SELECT * FROM table_name WHERE classified_id = $classified_id

最后一个不是更快吗?还是规范化的数据库执行得更快?

谢谢

最佳答案

我建议不要在您的情况下进行非规范化。随着您更多地使用连接,您会更好地使用连接,并且它们开始在您的脑海中变得更加清晰,并且易于维护对 future 来说是一个很好的好处。

Here是关于规范化(和非规范化)的一个很好的链接。 Here这是一个关于非规范化的问题。一个答案建议使用连接创建一个 View 以获取您需要的数据,并像您的 SELECT * FROM table_name WHERE classified_id = $classified_id 查询一样使用它。规范化的数据库可能会更慢,但您不太可能因此而想要反规范化。我希望这能提供一些帮助。

关于php - MySQL 头痛,我应该还是不应该?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2209502/

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