mySQL SELECT和COUNT速度查询

时间:2014-01-16 23:32:13

标签: php mysql performance pdo

我正在使用PDO,我需要知道SELECT语句返回了多少行。我的问题是,以下是比两个查询中的更慢,相同还是更快? PHPMyAdmin将告诉我SELECT语句需要多长时间,但不仅仅是COUNT语句,因此我无法确定查询需要多长时间。

有问题的查询:

SELECT *, (SELECT COUNT(*) from table) AS count FROM table

比将它分成两个查询更快,相同还是更慢?

感谢。

2 个答案:

答案 0 :(得分:3)

您可以将此查询编写为:

SELECT t.*, const.totalcount
FROM table t cross join
     (select count(*) as totalcount from table) const;

这可能比运行两个查询更快或更快。两个查询涉及“查询运行”开销 - 编译查询,来回传输数据。这会添加另一列,因此会增加结果集中的数据总量。

答案 1 :(得分:1)

两个查询会更快。你拥有的是一个从属子查询,它将为父项中的每个记录运行。如果它是一个MyISAM表,子查询将非常快,你可能不会注意到少量记录。

对它进行解析并查看MySQL报告的内容。