我有一个包含超过400,000行的MySQL数据库。对于我的基于 Web 的脚本,我有一个页面功能。确定应有多少页的步骤之一是返回表中的行数。
假设表名是 data
。
我想知道只返回数据库中的行数的最有效方法是什么。
我显然可以做这样的事情:
$getRows = mysql_query("SELECT id FROM `data`") or die(mysql_error());
$rows = mysql_num_rows($getRows);
这样它只选择 id。但是,这仍然是选择 400,000 + ID 的数据并将其存储在堆栈上(我认为?),并且似乎不如使用查找表状态等方法的效率较低。我只是不是 100% 确定如何使用表状态方法。
反馈和意见会很棒。谢谢大家!
使用计数
SELECT count(id) FROM data
有关获取计数的详细信息,请参阅此问题。确保您的 id 在表中有索引。
现在,要查找唯一行数,您可以这样做
SELECT count(distinct(id)) FROM data
或者,如果要查找最高 ID 号(如果您的 ID 是自动增量且唯一的),则可以尝试SELECT max(id) FROM data
返回存在的最高 ID 号。
我强烈推荐这个网站来学习这些基本功能:http://sqlzoo.net/
400,000 行根本不算多。保持简单,只需执行以下操作:
select count(*)
from `data`