COUNT(*)
говорит подсчитать строки.
COUNT(x)
говорит, чтобы подсчитать строки, где x IS NOT NULL
. Так что чуть медленнее, и, возможно, другой ответ.
SELECT mid
(против SELECT COUNT(...)
) - медленнее и громоздче. Он возвращает все значение mid
, а не только одно число.
SELECT COUNT(..) FROM ( SELECT ... )
- намного медленнее (в более старых версиях MySQL), потому что он должен генерировать временную таблицу с результатом подзапроса. Кроме того, COUNT
собирает просто простое число; подзапрос собирает много строк.
Если индексирован mid
(включая PRIMARY KEY
, то WHERE mid <= 100
- это сканирование диапазона (индекса) индекса (или таблицы). То есть касается только некоторых строк.
Если mid
не проиндексирован, будет просканирована вся таблица - следовательно, медленнее.