Определенно второй должен быть быстрее. Это из-за концепции «Доступ» . Доступ относится к количеству данных, которые запрос должен получить для получения результата. Это оказывает большое влияние на «оператора», который оптимизатор ядра СУБД решает включить в план выполнения.
За исключением некоторых исключений, первый запрос должен получить доступ ко всем строкам таблицы и затем вычислить результат, включая строки, которые не имеют никакого отношения к регистру.
Второй запрос относится только к конкретным строкам, необходимым для вычисления результата. Следовательно, он может быть быстрее. Для того, чтобы это было реализовано, наличие индексов имеет решающее значение. Например:
create index ix1 on myTable (col2);
В этом случае будет только доступ к подмножеству строк, соответствующих предикату фильтрации col2 = 2
.