检索表中记录计数的 MySQL 命令是什么?
SELECT COUNT(*) FROM fooTable;
将计算表中的行数。
看看 参考手册。
简单来说:
SELECT COUNT(*) FROM `tablename`
select count(*) from YourTable
我们还有另一种方法可以查找表中的行数,而无需对该表运行 select查询。
select
每个 MySQL 实例都有 information _ schema 数据库。如果运行以下查询,它将提供有关该表的完整详细信息,包括该表中的 大概行数。
select * from information_schema.TABLES where table_name = 'table_name'\G
$sql="SELECT count(*) as toplam FROM wp_postmeta WHERE meta_key='ICERIK' AND post_id=".$id; $total = 0; $sqls = mysql_query($sql,$conn); if ( $sqls ) { $total = mysql_result($sqls, 0); }; echo "Total:".$total;`
因为没人提过:
show table status;
列出所有表以及一些附加信息,包括每个表的估计行。这就是 phpMyAdmin 用于其数据库页面的内容。
这些信息可以在 MySQL 4中获得,可能在 MySQL 3.23太长时间之前的信息模式数据库中获得。
显示的数字是 估计的 InnoDB 和 TokuDB,但它是绝对正确的 MyISAM 和 Aria (Maria)存储引擎。
根据 文件:
一些存储引擎,如 MyISAM,存储 对于其他存储引擎(如 InnoDB) ,此值为 一个近似值,而且可能与实际值相差高达40% 在这种情况下,使用 SELECTCOUNT (*)来获得准确的 计数。
这也是在 MySQL 上查看行数的最快方法,因为查询如下:
select count(*) from table;
执行全表扫描可能是非常昂贵的操作,可能需要几个小时的大型高负载服务器。它还会增加磁盘 I/O。
同样的操作可能会阻塞表中的插入和更新——这种情况只会发生在特殊的存储引擎上。
InnoDB 和 TokuDB 可以使用表锁,但需要进行全表扫描。
必须使用 count ()返回与 指明的准则
select count(*) from table_name;
做一个
SELECT COUNT(*) FROM table;
之后可以使用 Where 指定条件
SELECT COUNT(*) FROM table WHERE eye_color='brown';
如果您的表中有多个字段,并且表很大,那么最好使用 不要使用 *,因为它将所有字段加载到内存中,并且使用以下内容将具有更好的性能
*
SELECT COUNT(1) FROM fooTable;
正如 Santosh所提到的,我认为这个查询的速度相当快,而不是查询所有的表。
对于特定 资料库中的特定 表名,返回数据记录数的整数 result :
select TABLE_ROWS from information_schema.TABLES where TABLE_SCHEMA = 'database' AND table_name='tablename';
如果您有一个主键或一个唯一的键/索引,那么尽可能快的方法(测试了400万个行表)
SHOW INDEXES FROM "database.tablename" WHERE Key_Name=\"PRIMARY\"
然后得到基数字段(接近于瞬时)
从0.4秒到0.0001毫秒
通过索引字段选择带有过滤器的计数非常方便
EXPLAIN SELECT * FROM table_name WHERE key < anything;