Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Не работает индекс?
|
|||
|---|---|---|---|
|
#18+
Добрый день. Не могу понять почему не используется индекс. Имеется таблица loging: ------- id bigserial dat date tim time ....... -------- Потом понадобилось ALTER TABLE loging ADD primary key (id); postgree естественно создал индекс. даем: EXPLAIN SELECT * from loging where id=4000000; QUERY PLAN ---------------------------------------------------------- Seq Scan on loging (cost=0.00..134849.35 rows=2 width=125) Filter: (id = 4318848) (записей: 2) хорошо, кошек я не умею готовить, поэтому следующий шаг CREATE INDEX loging_id ON loging (id); EXPLAIN SELECT * from loging where id=4000000; QUERY PLAN ---------------------------------------------------------- Seq Scan on loging (cost=0.00..134849.35 rows=2 width=125) Filter: (id = 4318848) (записей: 2) версия postgresql: 7.4.7. Система linux-2.6.8 PS. на других таблицах индексы использует, в таблице loging записей ~5млн. заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2005, 16:24 |
|
||
|
Не работает индекс?
|
|||
|---|---|---|---|
|
#18+
Пересоздай индексы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2005, 16:37 |
|
||
|
Не работает индекс?
|
|||
|---|---|---|---|
|
#18+
сколько записей в таблице? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2005, 20:41 |
|
||
|
Не работает индекс?
|
|||
|---|---|---|---|
|
#18+
unvisible Не могу понять почему не используется индекс. Имеется таблица loging: ------- id bigserial ....... -------- версия postgresql: 7.4.7. аналогично . ну или апгрейд до 8.x ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2005, 23:30 |
|
||
|
Не работает индекс?
|
|||
|---|---|---|---|
|
#18+
EXPLAIN SELECT * from loging where id=4000000::int8; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2005, 10:44 |
|
||
|
Не работает индекс?
|
|||
|---|---|---|---|
|
#18+
Funny_FalconEXPLAIN SELECT * from loging where id=4000000::int8; угу, совершенно верно, так использует. Эт фича семерки? Рискую быть наглым, но из каких соображений нужно указывать тип? Попробую на 8 сегодня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2005, 11:07 |
|
||
|
Не работает индекс?
|
|||
|---|---|---|---|
|
#18+
unvisible Funny_FalconEXPLAIN SELECT * from loging where id=4000000::int8; угу, совершенно верно, так использует. Эт фича семерки? Рискую быть наглым, но из каких соображений нужно указывать тип? Попробую на 8 сегодня.Из тех, что сам Постгр типа не знает (ну или прикидывается шлангом, что не знает). И он переписывает запрос так, что преобразование типов осуществляется для значения из поля таблицы, а не для передаваемого параметра. В итоге имеем сравнение параметра не со значением поля таблицы, а с функцией от этого значения. В индексе же хранятся-таки значения, а не функция от них. В итоге получается, что применить индекс невозможно. Кстати, это как раз один из способов избавиться от индекса в плане - применить к проиндексированному полю НЕИЗМЕНЯЮЩУЮ значение этого поля функцию или засунуть поле в како-нить выражение, также не изменяющее значение этого поля. К примеру, вместо INDEXED_FIELD = :my_value написать INDEXED_FIELD + 0 = :my_value. и если в первом случае будет использован индекс по INDEXED_FIELD, то во втором - ни за что. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2005, 11:43 |
|
||
|
Не работает индекс?
|
|||
|---|---|---|---|
|
#18+
unvisible Funny_FalconEXPLAIN SELECT * from loging where id=4000000::int8; угу, совершенно верно, так использует. Эт фича семерки? Попробую на 8 сегодня. Загрузил базу в 8-ю версию проблема исчезла, то есть пользуется индексами без указания типа. Всем спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2005, 12:44 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=33422943&tid=2006802]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
92ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
| others: | 264ms |
| total: | 454ms |

| 0 / 0 |
