我正在努力寻找尽可能少的性能影响的最佳方法。
这是设置...
带有搜索优化过滤器的搜索结果页面,该过滤器对 PHP 处理程序进行 AJAX 调用,该处理程序返回一组新的(优化的)结果。
我有 4 个表,其中包含我需要在 PHP 处理程序代码中连接的所有数据。
表 1 - 包含主要详细信息的主记录表
表 2 - 来自专业评级公司 #1 的每种产品的评级
表 3 - 专业评级公司#2 对每种产品的评级
表 4 - 专业评级公司#3 对每种产品的评级
搜索结果页面上的细化器是 jquery 滑块,其范围从允许的最低等级到每个等级的最高等级。
移动滑块句柄时,将使用新值进行新的 AJAX 调用,并且数据库查询将运行以创建一组新的精炼结果。
从表 1 中获取我需要的数据是很容易的部分。我正在努力解决的是如何有效地在其他 3 个表上包含一个连接,并且只选择与优化值/范围匹配的行。表 2、3 和 4 都有多个年份(2004-2012)的列,当我最初尝试将它们全部放入一个查询时,它陷入了困境。
表 2、3 和 4 包含表 1 中每条记录的各种评级。
表 2、3 和 4 中的列是... id - productID - y2004 - y2005 - y2006 - y2007 - ...您明白了。
每一年的每一列都有每条记录的数值(默认为 0)。
我需要做的是一次有效地选择与用户在所有 4 个表中选择的精简范围相匹配的记录。
一个示例精炼搜索将是...从表 1 中获取所有记录,其中价格在 25 美元和 50 美元之间,并且表 2 记录的评级(来自任何年份/列)在 1 - 4 之间,并且表 3 记录的评级(来自任何年份/列)在 80 - 100 之间并且表 4 记录的评级(来自任何年份/列)在 80 - 100 之间。
关于如何以尽可能高的性能进行设置的任何建议?