5

这是我将从 MySQL 数据库中为当前项目的产品页面提取的数据的描述。

产品数据来自product表格,变量名称(颜色、尺寸等)来自名为 的表格product_option_group,这些变量(红色、绿色、蓝色或小、中、大等)的实际值在product_option表格中,与该产品相关的产品照片位于product_photo.

我可能可以使用JOIN-s 创建一个查询,在一个查询中返回所有这些(产品、变量、值、照片),然后我需要foreach竭尽全力才能发挥作用。我的问题是这是否有意义。我应该在多大程度上减少查询?

对于产品列表,我使用单个查询来获取少量产品数据和第一张产品照片的 URL。但是在显示单个产品的页面上,我有点不确定最佳方法。似乎我正在编写一个疯狂的长 MySQL 查询然后进行大量 PHP 解析的一种方式。另一种方式是我进行大量的数据库调用。

哪个最好?

4

2 回答 2

6

我一直被教导(并与之合作)一个假设,即您应该只在需要时进行优化,而不是尝试优化不会导致问题的事物。

所以,在你的情况下,把你所拥有的东西放在磨坊里——给它加个负载,看看它是如何处理它的。如果速度很慢,请考虑是否要尝试合并到一个查询中,或者添加一个或两个索引,或者您可能会采取哪些措施来加快速度。问问自己是否是数据库返回缓慢,或者两者之间的来回流量是否是问题,或者 PHP 处理它的速度是否对您来说不够快。

把时间花在需要的地方,记住要保持简单。

于 2012-07-30T14:52:16.297 回答
3

最好的做法是尽量减少每次页面加载的查询数。

但是,数据库服务器擅长处理许多小查询。许多 CMS每页加载有数百个查询。

因此,请始终尝试优化,但不要为此而疯狂。

于 2012-07-30T14:50:14.377 回答