powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / поле типа date и индекс
6 сообщений из 6, страница 1 из 1
поле типа date и индекс
    #32840727
etsilop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть таблица в которой есть поле типа date есть по нему индекс btree. ещё дополнительно создал индекс date_part('year',поле)

делаю explain analyse select date_part('year',поле) from таблица where date_part('year', поле)=2004;
говорит что использует индекс время работы около 8 сек (таблица более 500 килозаписей)

а если делаю подобный запрос но выбираю date_part('month', поле) по которому нет индекса - пишет seq scan ляляля НО время выборки менее 4 секунд

может кто-нибудь обьяснить почему такая фигня??? (даже не фигня а фегня)
И ещё скажите может имеет смысл делать отдельные поля year month day вместо date??? Как вообще лучше сделать таблицу чтобы ускорить выборки для отчётов за месяц, год, день?
...
Рейтинг: 0 / 0
поле типа date и индекс
    #32840897
Фотография ГАГН 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в принципе, если структура запросов такова, что часто дёргаются данные, сортируемые (фильтруемые) по годам, месяцам,
то почему бы не сделать индексированные поля day, month, year, и повесить триггеры на их заполнение (при вставке/обновлении даты)?
...
Рейтинг: 0 / 0
поле типа date и индекс
    #32840984
wbear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с учетом того что в пределах 500 кило записей у тебя явно все записи(year-month) не уникальные , есть предположение что записей например с date_part('month',поле)==10 меньше(возможно даже ~ в 12 раз :) чем записейе с date_part('year', поле)=2004 возможно отсюда и прирост в скорости.
...
Рейтинг: 0 / 0
поле типа date и индекс
    #32844135
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приведите пожалуйста выдачу explain analyze для обоих запросов: "where date_part('year',поле)=..." и "where date_part('month',поле)=...".
...
Рейтинг: 0 / 0
поле типа date и индекс
    #32858426
etsilop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо, уже всё переделал. Совсем.
...
Рейтинг: 0 / 0
поле типа date и индекс
    #32862376
Фотография ГАГН 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а теперь по какой схеме работает?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / поле типа date и индекс
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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