Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
tsvector, GIN index и seq_scan
|
|||
|---|---|---|---|
|
#18+
Здравствуйте ! Есть таблица №1: CREATE TABLE title_index ( "Id" integer NOT NULL, "Flag" integer, "OType" character varying(255), "OStatus" integer, "PStatus" integer, "TSVect" tsvector, CONSTRAINT "title_index_Id_pk" PRIMARY KEY ("Id") ) CREATE INDEX "title_TSVect_GIN_idx" ON title_index USING gin ("TSVect"); Есть таблица №2: CREATE TABLE page_index ( "Id" integer NOT NULL, "Flag" integer, "PuStatus" integer, "PaStatus" integer, "TSVect" tsvector, CONSTRAINT "page_index_Id_pk" PRIMARY KEY ("Id") ) CREATE INDEX "page_TSVect_GIN_idx" ON page_index USING gin ("TSVect"); В таблице №1 хранятся короткие "заголовки текстов". Свойства таблицы №1: Table size: 104 kB Toast table size: 8192 bytes Indexes Size: 136 kB Rows (counted): 413 В таблице №2 хранятся "тексты" большой длины. Свойства таблицы №2: Table size: 40 kB Toast table size: 5624 kB Indexes Size: 9080 kB Rows (counted): 245 Запрос к таблице №1: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. дает план: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. А запрос к таблице №2: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. дает план: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Собственно, вопрос: Почему во втором случае PostgreSQL выбирает Seq Scan, даже если я ему говорю "SET enable_seqscan TO OFF;" перед этим и GIN индекс существует? Можно ли его заставить использовать индекс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2008, 14:23 |
|
||
|
tsvector, GIN index и seq_scan
|
|||
|---|---|---|---|
|
#18+
Проще всего - переписать запрос на вложенный Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. И может сделать единую таблицу с разделением веса заголовков/страниц через setweight()? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2008, 04:27 |
|
||
|
tsvector, GIN index и seq_scan
|
|||
|---|---|---|---|
|
#18+
Попробовал с вложенным запросом, вот результат: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Не помогло вообщем. Я даже reindex делал... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2008, 12:50 |
|
||
|
tsvector, GIN index и seq_scan
|
|||
|---|---|---|---|
|
#18+
А setweight() да, прикольная штука. Надо будет попробовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2008, 12:51 |
|
||
|
tsvector, GIN index и seq_scan
|
|||
|---|---|---|---|
|
#18+
Код: plaintext Код: plaintext на таких объемах индекс не нужен. попробуйте тоже самое на таблицах от 5К строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 13:04 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=270&tid=2004372]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
87ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 353ms |

| 0 / 0 |
