Вопрос

Структура примерной таблицы:

Id, Integer (PK)
Name, Varchar(100)
Description, Text

Мне нужно знать, существует ли разница в производительности между:

SELECT COUNT(*) FROM Example;

и

SELECT COUNT(Id) FROM Example;

Или различий не существует?

Это было полезно?

Решение

Различия существуют как в производительности, так и в фактическом наборе результатов

Производительность SQL-функции COUNT

Другие советы

Ознакомьтесь с планом объяснения:получен ли результат из таблицы или из метаданных (например,ИНФОРМАЦИЯ_СХЕМА)?:Различия, скорее всего, будут очень минимальными.

Я бы поверил, что разница есть;в зависимости от размера вашей таблицы это может быть незначительно, а может быть и значительно.

Это, вероятно, самый медленный:ВЫБЕРИТЕ COUNT(*) ИЗ Примера
Это находится посередине:ВЫБЕРИТЕ КОЛИЧЕСТВО (Id) ИЗ Примера
Это было бы быстрее всего:ВЫБЕРИТЕ COUNT(1) ИЗ Примера

Стоит почитать, но, к сожалению, на русском.

COUNT(*), может ли это быть быстрее?

Короткая история заключается в том, что COUNT(*) не так эффективен, как прямой доступ к dm_db_partition_stats.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top