Re: [pgsql-ru-general] Re: [pgsql-ru-general] Массивы: REFERENCES и выборки
От | Sergey Konoplev |
---|---|
Тема | Re: [pgsql-ru-general] Re: [pgsql-ru-general] Массивы: REFERENCES и выборки |
Дата | |
Msg-id | CAL_0b1vHRwBN4Tjc1xWHMn0kZCMqnjG_nZ_48MEX9AZHXi3+7A@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [pgsql-ru-general] Массивы: REFERENCES и выборки (Sergey Konoplev <gray.ru@gmail.com>) |
Список | pgsql-ru-general |
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
В списке pgsql-ru-general по дате отправления: