[英]Mysql query very slow (group by)
mysql 查询速度很慢,但我使用"group by"
功能...
我按查询删除组,查询速度非常快。
我怎么解决这个问题?
我的查询代码:
$myquery1 = mysql_query("SELECT * FROM konucuklar
WHERE status=''
and category='football'
GROUP BY matchhour
ORDER BY id asc");
while($myquery1record = mysql_fetch_array($myquery1)){
$myquery2 = mysql_query("SELECT * FROM konucuklar
WHERE mactarihi='$bugunt'
and statu=''
and kategori='futbol'
and macsaati='$myquery1record[matchhour]'
ORDER BY id asc");
$toplams=@mysql_num_rows($myquery2);
while ($myquery2record=mysql_fetch_array($myquery2)) {
// code
}
}
}
速度变慢可能与 GROUP BY 子句无关。 尝试在您需要的列上添加索引。
链接了解索引: http : //www.tutorialspoint.com/sql/sql-indexes.htm
MySQL 分析也可能对您有所帮助
您的查询未优化,可能可以通过其他方式做得更好,包括仅使用一个组合查询 (JOIN) 一次获取所有数据。
此外,如果您的表有很多项目,那么为过滤器的常用查询中使用的字段创建索引以加快搜索速度是一种很好的做法。
例如,您的第一个选择具有这种复杂性(并且可能格式不正确)
SELECT * FROM konucuklar WHERE status=''
and category='football'
GROUP BY matchhour
ORDER BY id asc
但仅用于获取第二个查询的比赛时间。 最小的优化是使用查询来仅获取所需的字段。
SELECT DISTINCT matchhour FROM konucuklar WHERE status='' and category='football'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.