MySql多选和分组结果。怎么做得好?

时间:2012-11-12 13:47:49

标签: mysql search

我有一个用PHP编写的网站,上面有一个搜索表单。 这个站点有很多部分和mySql表。

客户抱怨结果,因为他们没有分组,并希望根据网站部分进行分组,如下所示:

Results in "About" Page:
<the results>

Results in "Blog":
<the results>

......等等。

我必须为它实现一个快速解决方案,所以我做了几个查询并单独运行它们......并使用foreach迭代结果并打印它们。

嗯,它有效,但我对它不满意,因为它很慢,我想知道将来是否会遇到性能问题。

我自己不是一个mysql天才,我刚刚开始我的后端程序员carreer,所以我想让别人知道如何以更专业的方式处理这个问题。

我在考虑使用联接,但我不知道如何使用这种方法对结果进行分组。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我真的怀疑加入会以任何方式帮助你。既然你说每个部分都是一个不同的表格,那么你就没有办法加入它们,但仍然没有任何意义。您可以做的最好的事情是将这些查询写入一个句子,然后一次性获取所有需要的信息,从而节省发送数据php <=> mysql的时间,因为您将执行一次并返回一次。看看here,看看你如何做到这一点。我真的不认为你有什么更好的东西可以提高:)

响应:显然,您执行的请求越多,脚本执行的时间就越长。您是否曾尝试在cmd中使用命令ping google.com?您会发现即使您发送的数据量非常少,也无法让响应速度超过30毫秒左右。这是您为任何请求支付的价格。此外,它还会增加发送的数据量。因此,逐个执行它会使许多不必要的调用。此外,你总是可以自己尝试,用任何一种方式写它都不难。并输出完成任务所花费的时间。重复几次。如果发送数据所花费的时间非常微不足道,那么您可以轻松地离开它。但请记住,如果您的应用程序变大,每个丢失的毫秒将加起来。将它乘以一千个请求,你可能会浪费一分钟的时间甚至更多。无论如何,绝对不要采用UNION方式,因为您很可能会失去分析所收到数据的最多时间。任

关于这个功能:我,我自己,从来没有出现过需要使用该功能所以它是我或你读它 - 我们都会从头开始阅读。唯一的区别是我知道存在这样的功能:)奇怪的是,关于此的信息非常少。 C#具有非常好的数据集,可以轻松处理数据。在我看来,PHP正在懈怠:/我现在全都参与C#,所以我对php的了解越来越少。如果我是你,我会复制粘贴我给出的链接中的示例,并为以后创建一个可重用的类。希望我至少帮助过一点:)