На один предмет это не повлияет. Я проверил это на таблице, которая имеет 25000 строк и около 15 столбцов (без больших текстовых столбцов).
Если я использую это:
EXPLAIN
SELECT
*
FROM users
WHERE
user_id = 10104
План запроса прост:
Index Scan using users_pkey on users (cost=0.29..8.30 rows=1 width=147)
Index Cond: (user_id = 10104)
Поскольку user_id является первичным ключом, он будет использовать его.
Теперь второй запрос:
EXPLAIN
SELECT
*
FROM users
WHERE
user_Id IN(10104)
Получает точно такой же план запроса, потому что база данных знает, что это равные запросы в конце.
Я бы посоветовал вам выполнить те же запросы (с EXPLAIN
) для ваших таблиц и посмотреть на себя, потому что я не знаю структуры ваших таблиц, индексов и т. Д.
Запустите такое же сравнение для запроса с более чем одним параметром, тогда все станет интереснее, но, поскольку ваш вопрос касается только одного элемента, вы можете спать спокойно, зная, что он не окажет никакого влияния.
Даже если бы это было так, по моему мнению, оно было бы настолько маленьким, что вам не пришлось бы тратить слишком много времени на размышления о том, что является лучшей практикой здесь. Убедитесь, что ваш код читабелен и хорошо написан, и это уже шаг в правильном направлении