【发布时间】:2015-10-09 08:43:49
【问题描述】:
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
}
}
}
【问题讨论】:
-
一段字符串有多长?有多慢?表中有多少行?哪些列有索引?你能显示
konucuklar表的架构吗? -
表中真的有字段category和categori吗?以及地位和地位?这些字段是否被索引?此外,在循环中重复查询可能会非常慢,具体取决于迭代次数。这可以通过准备好的语句来加速,但是在您的情况下,您查询的是同一个表,因此不需要在循环中进行查询,因为可以通过第一个查询来检索所需的数据。
-
@syck 我该如何解决这个问题?我不知道:(
-
除非你告诉我们你的表是什么样的,你的解释输出是什么以及你有多少数据,答案只能是疯狂的猜测(除了@shadow 强调你的嵌套循环的点)