|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Evgenij M. Baldin 2:5020/400 04 Jan 2003 22:16:36 To : Alex G. Bodnar Subject : Re: PostgreSQL и индексы -------------------------------------------------------------------------------- Добрый день Alex G. Bodnar <alex.bodnar@malva.ua> wrote: > Вот решил опробовать как PostgreSQL > работает с большими таблицами. > Создал таблицу с несколькими полями. > Вставил около 30 миллионов записей. > Построил индексы по нескольким полям. Hу, столько не вставлял, реально в отдельных таблицах чуть больше 30 тыс записей, при тестировании доводил до нескольких сотен тысяч. Таких проблем не было. > После чего пытаюсь сделать выборку типа > big=# SELECT * FROM big_t WHERE pridx = 23423; > и получаю перебор всей таблицы. > По полю pridx создан индекс. В принципе такое поведение возможно, но в этом случае вы должны были запретить поиск с испоьзованием индексов. Hапример, установить переменную enable_indexscan в off . Возможные переменные и их установи можно быстро посмотреть в psql набрав show, а затем tab. Можно запретить все другие способы поиска и тогда наверняка будет выполняться indexscan (на сколько я помню это надо делать при запуcке сервера, то есть, на лету это не поменяешь). Подобное поведение возможно когда при запросе используются знаки > или < , но с = этого быть не должно, как вариант попробуйте сделать pridx не bigint, а просто int. С поддержкой нестандартных типов у PoatgreSQL временами наблюдается бардак. С уважением Евгений -- Budker Institute of Nuclear Physics e-mail: E.M.Baldin@inp.nsk.su WWW: http://www.inp.nsk.su/~baldin --- ifmail v.2.15dev5 * Origin: BINP, Novosibirsk, Russia (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/8843635d025f.html, оценка из 5, голосов 10
|