SQL, чтобы узнать, существует ли он, перестаньте считать!

SQL

Есть только два состояния для запроса «да» и «нет» из таблицы базы данных в соответствии с определенным условием, так зачем вам нужен SELECT count(*) при написании SQL?

Будь то новый программист, который только что вошел в путь, или старый программист, который в течение многих лет был в поле, все, что все всегда считается.

Большинство людей пишет

При многократном просмотре кода я обнаружил следующее явление:

В бизнес-коде вам нужно запросить наличие записей на основе одного или нескольких условий, независимо от того, сколько записей существует. Общий SQL и написание кода следующие

#### SQL写法:
SELECT count(*) FROM table WHERE a = 1 AND b = 2
​
#### Java写法:
int nums = xxDao.countXxxxByXxx(params);
if ( nums > 0 ) {
  //当存在时,执行这里的代码
} else {
  //当不存在时,执行这里的代码
}

Не очень хорошо себя чувствует, нет проблем

Порекомендуйте книги по Spring Boot, которые вы прочитали:

docs.QQ.com/doc/DQ05 перейти к версии 0…

Оптимизация

Рекомендуемая запись выглядит следующим образом:

#### SQL写法:
SELECT 1 FROM table WHERE a = 1 AND b = 2 LIMIT 1
​
#### Java写法:
Integer exist = xxDao.existXxxxByXxx(params);
if ( exist != NULL ) {
  //当存在时,执行这里的代码
} else {
  //当不存在时,执行这里的代码
}

SQL больше не используетсяcount, вместо этого используйтеLIMIT 1, Чтобы при столкнувшейся база данных запроса возврат, не будет продолжать искать, а также сколько

Можно прямо судить, не пусто ли в бизнес-коде

Суммировать

Чем больше элементов найдено по условиям запроса, тем очевиднее улучшение производительности, а в некоторых случаях можно сократить создание совместных индексов.

Выигрыши есть, не скупитесь на пересылку и просмотр.