2012/12/15 Dmitry E. Oboukhov <unera@debian.org>:
>> Какой именно запрос тормозит, можно посмотреть на него, на explain
>> analyze и на индексы?
>
> SELECT
> *
> FROM
> orders o
> JOIN
> orders_drivers od ON od.oid = o.id
> JOIN
> drivers d ON d.id = od.did
> WHERE
> d.чего-нибудь = чему-нибудь
>
> индексы
> o.id - primary
> d.id - primary
> od.did - btree
> od.oid, od.did - btree, unique
> d.чего-нибудь - тоже конечно индекс есть
Всёдки нужен explain analyze.
> ну и вторая задача от свертки, которую хотим получить - возможность
> сносить все в архивную таблицу:
> будет orders и orders_archive
> вторая будет INHERITS от первой, ну и соответственно кронскриптом
> orders что были 5 дней назад будут из первой во вторую выноситься :)
Наследование не нужно, иначе при выборке из orders план будет
строиться с учётом партиций, можно просто create table ... (like ...)
использовать. Или можно сделать orders_base и наследовать от неё обе
партиции, если на определении полей хочется сэкономить.
> когда имеется дерево взаимозависимостей мне непонятно как такое делать
Руками, опять же через триггера.
>>> ну и последнее.
>>> иногда хочется выбрать orders по входящему набору did
>>>
>>> как такой столбик проиндексировать лучше?
>
>> Сделать отдельное поле drivers_orders_did_array и на него gin индекс.
>> Чтобы индекс работал см.
>> http://www.postgresql.org/docs/9.2/interactive/intarray.html.
>
> это я читал. но у меня арреи все не интовые а текстовые.
Хранить в tsvector вместо массивов, индексировать GIN/GIST, искать
tags @@ to_tsquery('tag1 & tag2').
> соответственно когда пробуешь построить GIST/GIN индекс просит ops'ы
> указать и непонятно какие их туда указывать
>
> --
>
> . ''`. Dmitry E. Oboukhov
> : :' : email: unera@debian.org jabber://UNera@uvw.ru
> `. `~' GPGKey: 1024D / F8E26537 2006-11-21
> `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (GNU/Linux)
>
> iEYEAREDAAYFAlDMMxwACgkQq4wAz/jiZTc5yACfUPtApHd8Rwng9tvYESdipVKx
> 0kIAmwebd1b9QZcPbyS1KLETrTgdAJZT
> =zXsM
> -----END PGP SIGNATURE-----
>
--
Sergey Konoplev
Database and Software Architect
http://www.linkedin.com/in/grayhemp
Phones:
USA +1 415 867 9984
Russia, Moscow +7 901 903 0499
Russia, Krasnodar +7 988 888 1979
Skype: gray-hemp
Jabber: gray.ru@gmail.com