当查询非常大时,MySQL无法正常工作

时间:2014-11-21 13:10:30

标签: mysql

当查询中的pID数量非常大时 - 我没有收到预期的结果。更确切地说 - 我什么都没得到。

请注意,同一查询在另一台服务器上运行正常。

我认为(但我不确定)问题可能出在MySQL配置中,但不知道如何解决。

有谁知道我该如何解决这个问题?

查询如下所示:

SELECT `filtID`,`pID` FROM (
  (SELECT `filtID`,`pID` FROM `ftox_params_prod_links` 
  LEFT JOIN `ftox_params_values` USING(`fvID`) 
  WHERE (`filtID` IN (1,4,5,14,15,302,303,304,388,389,390)))  
  UNION (SELECT `filtID`,`pID` FROM `ftox_params_prod_values` 
  WHERE (`filtID` IN (1,4,5,14,15,302,303,304,388,389,390)))) AS `_T_` 
  WHERE (`pID` IN   (173,174,175,176,177,178,179,180,181,182,183,
                     184,185,186,187,188,189,190,191,192,193,194,195,196,197,
                     198,199,200,201,202,203,204,205,206,207,208,209, ...
                     ....................................................
                     ...................Very much pIDs..................
                     ....................................................
   )) ORDER BY `filtID` ASC 

1 个答案:

答案 0 :(得分:1)

MySQL在max_allowed_packet中对my.conf配置值定义的查询大小有限制。

或者查询结果可能太大 - 尝试在memory_limit中增加php.ini个php变量。

示例:

memory_limit = 256M