powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Таки постгрес не использует индекс.
8 сообщений из 8, страница 1 из 1
Таки постгрес не использует индекс.
    #33565843
robot648
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторfindfile=> \d url;
Table "public.url"
Column | Type | Modifiers
----------+---------+-----------------------------------------------------
id | bigint | not null default nextval('public.url_id_seq'::text)
server | bigint |
path | bigint |
filename | bigint |
is_dir | boolean |
size | bigint |
Indexes:
"url_i4" btree (server)

findfile=> explain select * from url where server=12010::bigint;
QUERY PLAN
---------------------------------------------------------------
Seq Scan on url (cost=0.00..542807.25 rows=1018737 width=41)
Filter: (server = 12010::bigint)
(2 rows)

findfile=> explain select * from url where server=12010::bigint;
QUERY PLAN
---------------------------------------------------------------
Seq Scan on url (cost=0.00..542807.25 rows=1018737 width=41)
Filter: (server = 12010::bigint)
(2 rows)



В таблице порядка 30 млн. записей
...
Рейтинг: 0 / 0
Таки постгрес не использует индекс.
    #33565849
robot648
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробовал брать число в кавычки и ::int8 и bigint. не использует индес сцуко и всё
...
Рейтинг: 0 / 0
Таки постгрес не использует индекс.
    #33566309
Фотография Кувалдин Роман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А попробуй убить индекс и пересоздать его. Также попробуй поиграться с разными типами индексов.

И еще, перефразируя классику: "Версию, брат! Назови мне версию!.."
...
Рейтинг: 0 / 0
Таки постгрес не использует индекс.
    #33566314
Funny_Falcon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Выражу общее мнение просьбой прислать explain analyze
2. PostgreSQL думает, что вернется ~1 миллион строк - в этой ситуации зачастую скан по таблице действительно лучше!!!
=> Если там действительно лям серверов с server = 12010, то не парься
=> Иначе - а ты давно пробовал vacuum analyze url ?
...
Рейтинг: 0 / 0
Таки постгрес не использует индекс.
    #33567156
Фотография Кувалдин Роман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Funny_Falcon=> Иначе - а ты давно пробовал vacuum analyze url ?

В смысле: vacuum analyze full?
...
Рейтинг: 0 / 0
Таки постгрес не использует индекс.
    #33567408
Funny_Falcon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В смысле vacuum analyze таблицы url.
...
Рейтинг: 0 / 0
Таки постгрес не использует индекс.
    #33573138
dragonlord
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
индексы эффективны только в случае, если условие, по которому они создавались, возвращает из таблицы относительно небольшой процент ее строк. чем больше этот процент, тем стало быть бесполезнее (и даже вреднее) индекс. оптимизатор запросов postgre прекрасно в курсе этого обстоятельства и может предпочесть seq scan в определенных ситуациях.

Мало того. если индекс не помещается в память - это очень плохо для производительности (а чем больше количество записей, тем вероятнее :)
...
Рейтинг: 0 / 0
Таки постгрес не использует индекс.
    #33578117
Funny_Falcon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dragonlord...
Завидую людям умеющим говорить по-русски. Мне еще учиться и учиться ;-( А ведь тоже самое хотел сказать
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Таки постгрес не использует индекс.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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