我正在使用PDO,我需要知道SELECT语句返回了多少行。我的问题是,以下是比两个查询中的更慢,相同还是更快? PHPMyAdmin将告诉我SELECT语句需要多长时间,但不仅仅是COUNT语句,因此我无法确定查询需要多长时间。
有问题的查询:
SELECT *, (SELECT COUNT(*) from table) AS count FROM table
比将它分成两个查询更快,相同还是更慢?
感谢。
答案 0 :(得分:3)
您可以将此查询编写为:
SELECT t.*, const.totalcount
FROM table t cross join
(select count(*) as totalcount from table) const;
这可能比运行两个查询更快或更快。两个查询涉及“查询运行”开销 - 编译查询,来回传输数据。这会添加另一列,因此会增加结果集中的数据总量。
答案 1 :(得分:1)
两个查询会更快。你拥有的是一个从属子查询,它将为父项中的每个记录运行。如果它是一个MyISAM表,子查询将非常快,你可能不会注意到少量记录。
对它进行解析并查看MySQL报告的内容。