Как посчитать все строки, принадлежащие userid?

0
$userid = $_SESSION[userid]
$sqll = mysql_query("SELECT count(id) FROM entries WHERE userid='$userid'");

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

Теги:

4 ответа

4
Лучший ответ

count(*).

Убедитесь, что вы избежите $userid.

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

3

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

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

1

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

0

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

  • 0
    И лучше описывает намерение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню