Чтение некоторых SQL Tuning документации я нашел это:Sql: Как правильно проверить, если запись существует
Select count(*)
:
- Подсчитать количество строк
- Часто неправильно используется для проверки наличия a запись
Select count(*)
действительно так плохо?
Каков правильный способ проверки наличия записи?
Вы ошибочно полагаете, что СУБД каким-то образом проверит все эти столбцы. Разница в производительности между `count (1)` и `count (*)` будет отличаться только от большинства СУБД с головным мозгом. – paxdiablo 2010-11-23 08:20:58
** @ paxdiablo ** Вы предлагаете, чтобы полагаться на детали реализации - хорошая идея? – 2010-11-23 08:24:05
Нет, я говорю, что _you_ на самом деле полагаются на детали реализации, заявляя, что это будет более эффективно. Если вы действительно хотите обеспечить максимальную производительность, вы должны профилировать ее для конкретной реализации с использованием репрезентативных данных или просто забыть об этом полностью. Все остальное потенциально вводит в заблуждение и может кардинально измениться при перемещении (например) с DB2 на MySQL. – paxdiablo 2010-11-23 08:30:29