首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MySQL:计算行数的最快方法

MySQL:计算行数的最快方法
EN

Stack Overflow用户
提问于 2011-02-21 05:59:14
回答 12查看 226.8K关注 0票数 139

在MySQL中,哪种计算行数的方法应该更快?

这一点:

代码语言:javascript
复制
SELECT COUNT(*) FROM ... WHERE ...

或者,另一种选择:

代码语言:javascript
复制
SELECT 1 FROM ... WHERE ...

// and then count the results with a built-in function, e.g. in PHP mysql_num_rows()

有人会认为第一种方法应该更快,因为这显然是数据库的领域,在内部确定这类事情时,数据库引擎应该比其他任何人都快。

EN

回答 12

Stack Overflow用户

发布于 2014-08-27 21:06:29

在与我的队友交谈后,Ricardo告诉我们,更快的方法是:

代码语言:javascript
复制
show table status like '<TABLE NAME>' \G

但你必须记住,结果可能并不准确。

您也可以从命令行使用它:

代码语言:javascript
复制
$ mysqlshow --status <DATABASE> <TABLE NAME>

更多信息:http://dev.mysql.com/doc/refman/5.7/en/show-table-status.html

你可以在mysqlperformanceblog上找到完整的讨论

票数 76
EN

Stack Overflow用户

发布于 2011-12-31 20:12:29

问得好,回答得好。这里有一个快速的方法来回应结果,如果任何人正在阅读这个页面,并错过了这一部分:

代码语言:javascript
复制
$counter = mysql_query("SELECT COUNT(*) AS id FROM table");
$num = mysql_fetch_array($counter);
$count = $num["id"];
echo("$count");
票数 29
EN

Stack Overflow用户

发布于 2015-10-20 09:04:01

这个查询(类似于to what bayuah posted)显示了一个数据库中所有表计数的一个很好的汇总:(我强烈推荐的stored procedure by Ivan Cachicatari的简化版本)。

代码语言:javascript
复制
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'; 

示例:

代码语言:javascript
复制
+-----------------+---------+
| Table Name      | Rows    |
+-----------------+---------+
| some_table      |   10278 |
| other_table     |     995 |
票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5060366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档