Php 多个SQL查询运行速度过慢的替代或帮助

Php 多个SQL查询运行速度过慢的替代或帮助,php,mysql,Php,Mysql,在一个页面上,我确实有大约100个查询,比如 $sQuery = "SELECT * FROM `users` HAVING `team` = $team AND `group` = $group AND male = 1 AND `team1` > 0 AND `team2` > 0 AND status LIKE 'movies'"; $rResult = $pdo->query($sQuery)->fetchAll(); $results = count

一个页面上,我确实有大约100个查询,比如

$sQuery = "SELECT * 
FROM  `users` 
HAVING  `team` = $team
AND  `group` = $group AND male = 1 AND `team1` > 0 AND `team2` > 0 AND status LIKE 'movies'";
$rResult = $pdo->query($sQuery)->fetchAll(); 
$results = count($rResult);
作为cronjob运行以将这些查询的结果保存到另一个表中

users
表大约有2.100.000行。是的,2.1米,正在成长,但成长缓慢。每个查询的结果都有0到40行,而不是更多现在我的问题:我想有更好的方法来获取结果并将其保存到另一个表中,那么您有什么建议吗?令人惊讶的是,cronjob加载时间太长,当然,经常会冻结


我以前使用过准备好的语句,但这些语句更慢。至少我有这种感觉。我希望你能在这里帮助我。多谢各位

不要使用
作为默认筛选选项,因为它们没有按照MySQL手册中的以下内容进行优化:

HAVING子句几乎是最后应用的,就在项目发送到客户机之前,没有进行优化。(限制在使用后应用。)

像其他人一样使用
WHERE
关键字。对于带有变量的查询,请始终使用准备好的语句:

$sql = "SELECT
            your, columns, here 
        FROM
            users
        WHERE
            team = ? AND
            group = ? AND
            male = 1 AND
            team1 > 0 AND
            team2 > 0 AND
            status = 'movies'";
$stmt = $db->prepare($sql);
// ...

究竟为什么在这个查询中使用have而不是WHERE?如果不了解数据类型、索引等,我们无法回答这个问题。即使是表类型也会有不同。那么这个表上有哪些索引;解释对查询显示了什么?可能是通过简单的
插入select
?性能问题应该包括
解释分析
和一些关于表大小、索引、当前时间性能、期望时间等的信息。
是一个相对术语,我们需要一个实际值来比较。