我的SQL最佳实践与PHP计数行

时间:2012-08-30 02:42:27

标签: php mysql count

1)计数记录:

//Connect to mysql server
$link = mysql_connect(HOST, USER, PASSWORD);
if(!$link) {
    die('Could not connect to server: ' . mysql_error());
}

//Select database
$db = mysql_select_db(DATABASE);
if(!$db) {
    die("cannot use the database");
}
mysql_set_charset('charset=utf8',$link); 

$query="SELECT `id`FROM `table` WHERE `abc`='123'";
$result=mysql_query($query);               
$count= mysql_num_rows($result);

我用它来计算记录。该表有500K记录。计算记录的最佳做法是什么?

2)我是初学@ mysql和php。我在上面的剧本中遗漏了什么吗?我想我最终需要关闭mysql连接!

4 个答案:

答案 0 :(得分:3)

当你只需要计算记录时,你应该使用mysql的COUNT()函数,而不是加载所有记录。

$query="SELECT COUNT(*) AS num FROM `table` WHERE `abc`='123'";

其次,使用PDO代替mysql_函数。

答案 1 :(得分:2)

为什么不让DB去做呢 - 简单的

SELECT COUNT(*) FROM table WHERE abc=123;

答案 2 :(得分:1)

mysql有一个count函数:

http://dev.mysql.com/doc/refman/5.1/en/counting-rows.html

所以你可以使用:

SELECT COUNT(*) FROM table WHERE abc=123

或任何条件。

答案 3 :(得分:1)

$query="SELECT COUNT(id) FROM `table` WHERE `abc`='123'";
$result = mysql_query($query);
$count = mysql_fetch_row($result);

这将快速而轻盈。另外,正如Jack在上面的评论中所说,你应该使用MySQLi或PDO,因为PHP已经弃用了MySQL插件。