我应该在多大程度上最小化数据库查询?

时间:2012-07-30 14:46:59

标签: php mysql

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

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

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

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

哪个最好?

2 个答案:

答案 0 :(得分:6)

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

所以,在你的情况下,拿走你所拥有的并通过磨机运行它 - 加载它并看看它是如何处理它的。如果它很慢,那么考虑一下你是想尝试组合成一个查询,还是添加一两个索引,或者你可以做些什么来加快它。问问自己,这是缓慢返回的数据库,还是两者之间来回流量是问题,还是PHP没有足够快地处理它。

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

答案 1 :(得分:3)

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

但是,数据库服务器善于处理许多小查询。很多CMS的数百个查询每页加载

所以,总是尝试优化,但不要发疯。