Здравсвтуйте!
Задался таким вопросом: Работают ли функциональные индксы для view. И можно ли создавать функциональные индексы по самописным функциям.
Более подробный пример:
таблица items:
item_id, name
таблица types:
type_id, name, price
таблица item_types:
item_id, type_id
функция get_item_price(item_id):
считает цену для заданного item_id:
SELECT sum(price) FROM types INNER JOIN item_types ON item_types.type_id = types.type_id WHERE item_types.item_id = $1
view item_price:
item_id, get_item_price(item_id) as item_price
Имеет ли смысл создавать функциональный индекс?:
CREATE INDEX item_price_idx ON item USING btree (get_item_price(item_id));
Будет ли он работать в запросe SELECT * FROM item_price WHERE item_price = ?
Заранее спасибо!
Я не знаю будет ли работать
Я не знаю будет ли работать данный индекс в конкретном запросе, однако знаю, что это легко можно проверить.
Создайте индекст и перед SELECT поставьте EXPLAIN. По плану запроса будет всё понятно.
Ой я балбес Я же смотрел
Ой я балбес
Я же смотрел explain.
Только не explain select * from item_price where item_price = ? a просто explain select * from item_price
Естественно ничего не было видно