$userid = $_SESSION[userid]
$sqll = mysql_query("SELECT count(id) FROM entries WHERE userid='$userid'");
Использует count(id)
эффективный? Или есть лучший способ?
count(*)
.
Убедитесь, что вы избежите $userid
.
Изменить: всего лишь пол-слова объяснения. count(column)
подсчитывает все строки, для которых column
не является нулевым. Использование *
должно быть наиболее эффективным способом подсчета строк независимо от содержимого и более описательного, если кто-то (включая вас) когда-либо (читает) код.
Убедитесь, что у вас есть индекс в столбце userid (если это первичный ключ, вы уже это сделали).
Если у вас есть userid как первичный ключ, тогда это должен быть эффективный запрос и будет иметь такую же эффективность, как использование count (*).
Некоторые говорят, что более эффективно использовать COUNT(*)
это также зависит от того, как часто вы будете считать это значение и как часто он будет меняться. Может быть, лучше кэшировать его где-нибудь.
Поскольку вам не нужно подсчитывать столбец id, вы можете использовать COUNT(*)
, который может быть быстрее с некоторыми двигателями.