Frikazoid
Guest
Индексирование полей массива.
Доброго времени суток.
Возник конкретный вопрос.... На который я не могу ответить =(
Суть дела в том что у меня есть таблица
message (id integer, id_board integer, name text, value text[])
Первые 3 поля понятно для чего....
А вот value.... Это массив значений. Он имеет фиксированное колличество элементов для конкретного значения id_board.
Возможно ли сделать индексированние по каждому эллементу массива? Помогите плз.... А при колличестве записей > 600000 база просто ложится спать если учесть что выборка ведётся практически по всем полям....
И второй вопрос. (оптимизация запросов....)
Вот этот код сначала вычасляет размерность массива а потом с помощью ф-ии brows($col[1], 'value') подставляет в запрос поля вида "value[N] as valueN". Т.е. перечисляет все елементы массива в запросе.
Сопственно вопрос: Как это переписать одним запросом с использованием хранимой процедуры?
Плиз хелп. Я с постгресом знаком всего 2 дня. А проект уже написал. Теперь надо оптимизировать.
Спасибо заранее всем кто откликнится.....
ЗЫ PostgreSQL 8.0.3
ЗЫ2 Сорри за 2 вопроса в одном топике.
Доброго времени суток.
Возник конкретный вопрос.... На который я не могу ответить =(
Суть дела в том что у меня есть таблица
message (id integer, id_board integer, name text, value text[])
Первые 3 поля понятно для чего....
А вот value.... Это массив значений. Он имеет фиксированное колличество элементов для конкретного значения id_board.
Возможно ли сделать индексированние по каждому эллементу массива? Помогите плз.... А при колличестве записей > 600000 база просто ложится спать если учесть что выборка ведётся практически по всем полям....
И второй вопрос. (оптимизация запросов....)
PHP:
$colres=pg_exec("select id, array_upper(value,1) as value, array_upper(metrik,1) as mertik from param where id_params=(select id_params from boards where id=".$board.") order by id");
while($col = pg_fetch_array($colres)){
$datres=pg_exec("select name, type[1] as type, type[5] as important, ".brows($col[1], 'value').", ".brows($col[2], 'metrik')." from param where id_params=(select id_params from boards where id=".$board.") and id=".$col[0]);
while($dat = pg_fetch_array($datres)){
......
Сопственно вопрос: Как это переписать одним запросом с использованием хранимой процедуры?
Плиз хелп. Я с постгресом знаком всего 2 дня. А проект уже написал. Теперь надо оптимизировать.
Спасибо заранее всем кто откликнится.....
ЗЫ PostgreSQL 8.0.3
ЗЫ2 Сорри за 2 вопроса в одном топике.