Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL如何选择此查询,使其不会使我的MySQL服务器崩溃_Php_Mysql - Fatal编程技术网

Php MySQL如何选择此查询,使其不会使我的MySQL服务器崩溃

Php MySQL如何选择此查询,使其不会使我的MySQL服务器崩溃,php,mysql,Php,Mysql,我有一个带SSD的专用服务器,一个非常好的CPU和32GB RAM 我有这样一个问题: SELECT COUNT(*), id, DATE1, DATE2 FROM TABLE WHERE SOMETHING1 LIKE '%' AND `SOMETHING2` LIKE '%' AND `SOMETHING3` LIKE '%' AND `SOMETHING4` LIKE '%' AND (SELECT COUNT(*) FROM calendar_table WHERE dt &g

我有一个带SSD的专用服务器,一个非常好的CPU和32GB RAM

我有这样一个问题:

SELECT COUNT(*), id, DATE1, DATE2 FROM TABLE 
WHERE SOMETHING1 LIKE '%' AND 
`SOMETHING2` LIKE '%' AND 
`SOMETHING3` LIKE '%' AND 
`SOMETHING4` LIKE '%' AND 
(SELECT COUNT(*) FROM calendar_table WHERE dt > DATE2 AND dt <= DATE1 AND isWeekday = 1 AND isHoliday = 0 ) < '3' AND 
(DATE3 BETWEEN '' AND '' AND DATE3 != 'NULL' AND DATE3 != '0000-00-00') AND
`SOMETHING5` LIKE 'this'
此查询发生在一个主表上,该主表有刚刚超过2000行和108列

有没有更好的方法来执行此查询,目前大约需要4.8974秒。这是一个带有表单的动态页面,用于更改搜索条件

任何指点都将被高度赞赏,因为它开始让我紧张


感谢阅读guys

您可以先用SELECT COUNTANY_字段_名称替换SELECT COUNT*,例如“SELECT CountId为什么要从日历表中添加SELECT COUNT*,其中dt>DATE2和dt您应该尝试排除未输入的条件的任何部分-因此,如果没有输入,则不应输入“%”之类的内容它的标准。与DATE3相同-在where子句中没有这些内容使其更易于阅读和优化。2000行不算什么,我打赌您可以在内存中更快地获得所有行。也许一些过滤器可以在内存中轻松完成?日历桌有多大?有索引吗?为什么在没有分组的情况下,select中有一个计数,所以总是1?好的,伙计们,感谢你们的输入,我发现我所做的是不正确的,正如你们所指出的。虽然这个问题似乎仍然存在,但我将编辑我的原始Q,并更新我为缓解某些查询的性能问题所做的工作,并包括来自同一集合的其他查询的示例