更快地了解MySQL数据库中的总行数?

Sta*_*arx 6 php mysql records

如果我需要知道数据库表中的总行数,我会这样做:

$query = "SELECT * FROM tablename WHERE link='1';";
$result = mysql_query($query);
$count = mysql_num_rows($result);
Run Code Online (Sandbox Code Playgroud)

更新:我犯了一个错误,上面是我的实际方式.我向所有人道歉

因此,您可以看到通过整个数据库扫描的数据总量已恢复.

有没有更好的办法?

Chr*_*ris 18

$query = "SELECT COUNT(*) FROM tablename WHERE link = '1'";
$result = mysql_query($query);
$count = mysql_result($result, 0);
Run Code Online (Sandbox Code Playgroud)

这意味着您不会在数据库和PHP之间传输所有数据,这显然是浪费时间和资源.

对于它的价值,你的代码实际上不会计算行数 - 它会给你2倍的列数,因为你计算代表单行的数组中的项目数(而mysql_fetch_array给你两个)每列数组中的条目 - 一个数字,一个用于列名称)


web*_*ave 10

SELECT COUNT(*) FROM tablename WHERE link='1';
Run Code Online (Sandbox Code Playgroud)

  • @Pedro等人,你应该_not_使用列名.这不会计算该列中的NULL值.有些人建议使用count(1),因为它更快,但除了最脑死亡的DBMS之外,所有这些都是垃圾. (3认同)