Как следует из названия ... Я пытаюсь найти самый быстрый способ с наименьшими накладными расходами, чтобы определить, существует ли запись в таблице или нет.
Пример запроса:
SELECT COUNT(*) FROM products WHERE products.id = ?;
vs
SELECT COUNT(products.id) FROM products WHERE products.id = ?;
vs
SELECT products.id FROM products WHERE products.id = ?;
Скажем, ?
заменяется на 'TB100'
... и первый, и второй запросы вернут один и тот же результат (скажем ... 1
для этого разговора). Последний запрос вернет, 'TB100'
как ожидалось, или ничего, если id
в таблице нет.
Цель состоит в том, чтобы выяснить, есть ли id
в таблице или нет. Если нет, программа вставит следующую запись, если это так, программа пропустит ее или выполнит запрос UPDATE на основе другой логики программы, выходящей за рамки этого вопроса.
Что быстрее и с меньшими накладными расходами? (Это будет повторяться десятки тысяч раз за один запуск программы и будет выполняться много раз в день).
(Выполнение этого запроса к M $ SQL Server из Java через предоставленный M $ драйвер JDBC)