Есть только два состояния для запроса «да» и «нет» из таблицы базы данных в соответствии с определенным условием, так зачем вам нужен 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, которые вы прочитали:
Оптимизация
Рекомендуемая запись выглядит следующим образом:
#### 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, Чтобы при столкнувшейся база данных запроса возврат, не будет продолжать искать, а также сколько
Можно прямо судить, не пусто ли в бизнес-коде
Суммировать
Чем больше элементов найдено по условиям запроса, тем очевиднее улучшение производительности, а в некоторых случаях можно сократить создание совместных индексов.
Выигрыши есть, не скупитесь на пересылку и просмотр.