Как посчитать все строки, принадлежащие userid? - PullRequest
0 голосов
/ 07 января 2010
$userid = $_SESSION[userid]
$sqll = mysql_query("SELECT count(id) FROM entries WHERE userid='$userid'");

Эффективно ли использование count(id)? Или есть лучший способ?

Ответы [ 4 ]

4 голосов
/ 07 января 2010

count(*) должен сделать.

Убедитесь, что вы сбежали $userid, хотя.

Редактировать : всего лишь половина слова объяснения. count(column) считает все строки, для которых column не равно нулю. Предполагается, что использование * является наиболее эффективным способом подсчета строк независимо от содержимого и более наглядным, если кто-то (в том числе и вы) когда-нибудь (повторно) прочитает код.

3 голосов
/ 07 января 2010

Убедитесь, что у вас есть индекс в столбце идентификатора пользователя (если это первичный ключ, вы уже его используете).

Если в качестве первичного ключа у вас есть идентификатор пользователя, то это должен быть эффективный запрос ибудет иметь ту же эффективность, что и при использовании count (*).

1 голос
/ 07 января 2010

Некоторые говорят, что более эффективно использовать COUNT(*) это также зависит от того, как часто вы будете считать это значение и как часто оно будет меняться. Может быть, лучше куда-нибудь его кешировать.

0 голосов
/ 07 января 2010

Поскольку вам не нужно специально подсчитывать столбец id, вы можете использовать COUNT(*), что может быть быстрее для некоторых движков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...