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 в конце!
Функция mysql имеет функцию count:
http://dev.mysql.com/doc/refman/5.1/en/counting-rows.html
поэтому вы можете использовать:
SELECT COUNT(*) FROM table WHERE abc=123
или какое бы то ни было условие.
Когда вам нужно только подсчитать запись, вы должны использовать функцию COUNT()
для mysql вместо загрузки всех записей.
$query="SELECT COUNT(*) AS num FROM `table` WHERE `abc`='123'";
Во-вторых, используйте PDO
вместо функций mysql_
.
Почему бы не позволить БД сделать это? А как насчет простой
SELECT COUNT(*) FROM table WHERE abc=123;
$query="SELECT COUNT(id) FROM `table` WHERE `abc`='123'"; $result = mysql_query($query); $count = mysql_fetch_row($result);
Это будет работать быстро и быстро. Кроме того, как сказал Jack
в комментариях выше, вы должны использовать MySQLi или PDO, потому что аддон MySQL устарел от PHP.