powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Не работает gist
13 сообщений из 13, страница 1 из 1
Не работает gist
    #35526263
orion-1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добавил в базу btree_gist.sql
создал индекс для поля типа text gist(f_name)

но скорость выполнения запроса не изменилась .. where f_name ilike '%test%'

(PostgreSQL 8.1.0)

изза чего такое может быть?

тоже самое сделал на локальном сервере (PostgreSQL 8.0.3) - ускорилось выполнение запроса. данные в обеих базах одинаковые
...
Рейтинг: 0 / 0
Не работает gist
    #35527766
Фотография ss25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ANALYZE
...
Рейтинг: 0 / 0
Не работает gist
    #35527803
Sad Spirit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orion-1
но скорость выполнения запроса не изменилась .. where f_name ilike '%test%'

Какая именно часть документации btree_gist заставила думать, что скорость выполнения такого запроса должна измениться?..
...
Рейтинг: 0 / 0
Не работает gist
    #35527913
orion-1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторANALYZE vacuum full analyze ? делал до, и после добавления индекса - не помогло.

авторКакая именно часть документации btree_gist заставила думать, что скорость выполнения такого запроса должна измениться?.. - на локальном сервере время выполнения уменьшилось в 10 раз. на хостере после добавления индекса - не уменьшилось.
...
Рейтинг: 0 / 0
Не работает gist
    #35527922
Sad Spirit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orion-1
авторКакая именно часть документации btree_gist заставила думать, что скорость выполнения такого запроса должна измениться?.. - на локальном сервере время выполнения уменьшилось в 10 раз. на хостере после добавления индекса - не уменьшилось.
Я кагбэ предлагаю сначала ответить на мой исходный вопрос, а потом уже будем разбираться, почему уменьшилось в 10 раз на локальном.
...
Рейтинг: 0 / 0
Не работает gist
    #35527983
orion-1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sad Spirit orion-1
авторКакая именно часть документации btree_gist заставила думать, что скорость выполнения такого запроса должна измениться?.. - на локальном сервере время выполнения уменьшилось в 10 раз. на хостере после добавления индекса - не уменьшилось.
Я кагбэ предлагаю сначала ответить на мой исходный вопрос, а потом уже будем разбираться, почему уменьшилось в 10 раз на локальном.

я не читал документацию, просто нашел как установить и попробовал - локально получилось ускорить
...
Рейтинг: 0 / 0
Не работает gist
    #35528109
Andrey Daeron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orion-1
я не читал документацию, просто нашел как установить и попробовал - локально получилось ускорить
зачет!!!

Тогда давайте сюда EXPLAIN ANALYZE обоих запросов на обоих серверах.
...
Рейтинг: 0 / 0
Не работает gist
    #35528720
orion-1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТогда давайте сюда EXPLAIN ANALYZE обоих запросов на обоих серверах.

В обе базы был добавлен индекс, после которого ускорились запросы только на локальном сервере:

Код: plaintext
CREATE INDEX index_unit_txt   ON unit   USING gist   (txt);

ЗАПРОС:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
EXPLAIN ANALYZE
SELECT  count(*) as count, category_id FROM unit 
WHERE  priority > (- 2 ) and act_id= 1  
AND ( (
unit.name ilike '%shi%' or unit.title ilike '%shi%' or unit.txt ilike '%shi%'
)
) group by category_id

ЛОКАЛЬНО:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
HashAggregate  (cost= 772 . 63 .. 772 . 64  rows= 1  width= 4 ) (actual time= 562 . 000 .. 562 . 000  rows= 43  loops= 1 )

  ->  Seq Scan on unit  (cost= 0 . 00 .. 772 . 63  rows= 1  width= 4 ) (actual time= 15 . 000 .. 530 . 000  rows= 1054  loops= 1 )

        Filter: ((priority > - 2 ) AND (act_id =  1 ) AND (((name)::text ~~* '%shi%'::text) OR ((title)::text ~~* '%shi%'::text) OR (txt ~~* '%shi%'::text)))

Total runtime:  562 . 000  ms

НА СЕРВЕРЕ:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
HashAggregate  (cost= 2197 . 25 .. 2197 . 38  rows= 10  width= 4 ) (actual time= 229055 . 728 .. 229059 . 884  rows= 52  loops= 1 )

  ->  Seq Scan on unit  (cost= 0 . 00 .. 2189 . 85  rows= 1480  width= 4 ) (actual time= 4 . 525 .. 227296 . 714  rows= 3469  loops= 1 )

        Filter: ((priority > - 2 ) AND (act_id =  1 ) AND (((name)::text ~~* '%shi%'::text) OR ((title)::text ~~* '%shi%'::text) OR (txt ~~* '%shi%'::text)))

Total runtime:  229095 . 199  ms
...
Рейтинг: 0 / 0
Не работает gist
    #35528731
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orion-1 wrote:

> ЛОКАЛЬНО:
> НА СЕРВЕРЕ:

У вас видимо запросы одинаковые, с одинаковыми планами,
только локально у вас данных гораздо меньше, вот и разница во времени.
А ваше улучшение не помогает ни там, ни там.
Это лишний раз доказывает истину, которую вы может еще не знаете -
судить об оптимальности запроса на основе времени выполнения НЕЛЬЗЯ.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Не работает gist
    #35528790
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Планы промахиваются по Rows. После создания индекса желательно VACUUM ANALYZE [table], ну или FULL (если не лень).
...
Рейтинг: 0 / 0
Не работает gist
    #35529110
orion-1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как можно ускорить поиск ilike '%test%' по полю TEXT (данные от 20 до 2000 символов) ?
...
Рейтинг: 0 / 0
Не работает gist
    #35529388
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orion-1 wrote:
> а как можно ускорить поиск ilike '%test%' по полю TEXT (данные от 20 до
> 2000 символов) ?

Только полнотекстовым поиском или многомерными индексами.
Я не знаю, есть ли они в PG.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Не работает gist
    #35529757
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orion-1а как можно ускорить поиск ilike '%test%' по полю TEXT (данные от 20 до 2000 символов) ?для поиска по целому слову используйте полнотекстовый поиск

8.3 см. доку

8.1 см. contrib/tsearch2
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Не работает gist
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]