172 похожих чатов

Добрый день. Помогите пожалуйста разобраться во внутреннем механизме запроса. Есть таблица

с пользователями, имеющая среди прочих колонки id и email. По колонке email построен уникальный индекс.
Задача довольно тривиальная: определить, есть ли в таблице пользователь с заданным email.
Мне интересует не столько решение, сколько механизм работу СУБД, а именно:
1) Есть ли какой-то самый простейший и самый дешевый способ определить наличие хотябы одной записи, удовлетворяющей условиям?
2) Если это возможно только через COUNT, то в данном случае есть ли разница, по какому полю строить COUNT? Например COUNT(id) или COUNT(email) или COUNT(*).
Хочу разобраться, как это работает.

2 ответов

5 просмотров

Юзай EXISTS.

С учётом: > По колонке email построен уникальный индекс. EXISTS, COUNT(email) и COUNT(*) дадут практически одинаковые планы (index-only scan). А вот "COUNT(id)" полезет в heap, чтобы проверить id (index scan).

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта