在MySQL中,哪种计算行数的方法应该更快?
这一点:
SELECT COUNT(*) FROM ... WHERE ...
或者,另一种选择:
SELECT 1 FROM ... WHERE ...
// and then count the results with a built-in function, e.g. in PHP mysql_num_rows()
有人会认为第一种方法应该更快,因为这显然是数据库的领域,在内部确定这类事情时,数据库引擎应该比其他任何人都快。
发布于 2014-08-27 21:06:29
在与我的队友交谈后,Ricardo告诉我们,更快的方法是:
show table status like '<TABLE NAME>' \G
但你必须记住,结果可能并不准确。
您也可以从命令行使用它:
$ mysqlshow --status <DATABASE> <TABLE NAME>
更多信息:http://dev.mysql.com/doc/refman/5.7/en/show-table-status.html
你可以在mysqlperformanceblog上找到完整的讨论
发布于 2011-12-31 20:12:29
问得好,回答得好。这里有一个快速的方法来回应结果,如果任何人正在阅读这个页面,并错过了这一部分:
$counter = mysql_query("SELECT COUNT(*) AS id FROM table");
$num = mysql_fetch_array($counter);
$count = $num["id"];
echo("$count");
发布于 2015-10-20 09:04:01
这个查询(类似于to what bayuah posted)显示了一个数据库中所有表计数的一个很好的汇总:(我强烈推荐的stored procedure by Ivan Cachicatari的简化版本)。
SELECT TABLE_NAME AS 'Table Name', TABLE_ROWS AS 'Rows' FROM information_schema.TABLES WHERE TABLES.TABLE_SCHEMA = '`YOURDBNAME`' AND TABLES.TABLE_TYPE = 'BASE TABLE';
示例:
+-----------------+---------+
| Table Name | Rows |
+-----------------+---------+
| some_table | 10278 |
| other_table | 995 |
https://stackoverflow.com/questions/5060366
复制相似问题