我想用SQL_CALC_FOUND_ROWS和MYSQLI来计算我的表上的访问者,但它很慢。它超过15秒。我能做些什么使它更快? 我不得不提到我的表是MyISAM,总共有超过200万行。MYSQLI行计算太慢
if ($result = $mysqli->query("SELECT SQL_CALC_FOUND_ROWS * FROM visitors_table WHERE visitor_affiliate= 'first user'")) {
/* determine number of rows result set */
$row_cnt = $result->num_rows;
printf("Result set has %d rows.\n", $row_cnt);
/* close result set */
$result->close();
}
if ($result2 = $mysqli->query("SELECT SQL_CALC_FOUND_ROWS * FROM visitors_table WHERE visitor_affiliate= 'seconduser'")) {
/* determine number of rows result set */
$row_cnt2 = $result2->num_rows;
printf("Result set has %d rows.\n", $row_cnt2);
/* close result set */
$result2->close();
}
if ($result3 = $mysqli->query("SELECT SQL_CALC_FOUND_ROWS * FROM visitors_table WHERE visitor_affiliate= 'thirduser'")) {
/* determine number of rows result set */
$row_cnt3 = $result3->num_rows;
printf("Result set has %d rows.\n", $row_cnt3);
/* close result set */
$result2->close();
}
任何帮助表示赞赏.. 提前感谢!
@anantkumarsingh SQL_CALC_FOUND_ROWS不是列 – jason88
哎呀! MyISAM和2M行很痛苦。你的'visitors_table'列是某种索引吗? – Machavity
@anantkumarsingh这是一个[MySQL函数](https://dev.mysql.com/doc/refman/5.5/en/information-functions.html#function_found-rows) – Machavity