У меня есть эта таблица в Postgresql:
CREATE TABLE my_table
(
id bigint NOT NULL,
value bigint,
CONSTRAINT my_table_pkey PRIMARY KEY (id)
);
В my_table ~ 50000 строк.
Вопрос в том, почему запрос:
SELECT * FROM my_table WHERE id = COALESCE(null, id) and value = ?
медленнее, чем этот:
SELECT * FROM my_table WHERE value = ?
Is есть ли какое-либо решение, кроме оптимизации строки запроса на уровне приложения?
РЕДАКТИРОВАТЬ: Практически вопрос заключается в том, как переписать запрос select * from my_table, где id = coalesce (?, id) и value =?
, чтобы иметь производительность в худшем случае не ниже, чем у select * from my_table where value =?
в Postgresql 9.0