Скажем, я хочу проверить, существует ли запись в таблице MySQL. Я бы запустил запрос, проверил количество возвращаемых строк. Если это делают 0 строк, в противном случае сделайте это.
SELECT * FROM table WHERE id=5
SELECT id FROM table WHERE id=5
Есть ли разница между этими двумя запросами? Потрачены ли усилия на возвращение каждого столбца или на фильтрацию столбцов, которые нам не нужны?
SELECT COUNT(*) FROM table WHERE id=5
Это совершенно новый вопрос. Будет ли сервер захватывать все значения, а затем подсчитывать значения (сложнее, чем обычно), или он не будет беспокоиться о захвате чего-либо и будет просто увеличивать переменную каждый раз, когда находит совпадение (проще, чем обычно)?
Я думаю, что делаю много ложных предположений о том, как работает MySQL, но в этом суть вопроса! Где я не прав? Научи меня, переполнение стека!