Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
поле типа date и индекс
|
|||
|---|---|---|---|
|
#18+
есть таблица в которой есть поле типа 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??? Как вообще лучше сделать таблицу чтобы ускорить выборки для отчётов за месяц, год, день? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 09:21 |
|
||
|
поле типа date и индекс
|
|||
|---|---|---|---|
|
#18+
в принципе, если структура запросов такова, что часто дёргаются данные, сортируемые (фильтруемые) по годам, месяцам, то почему бы не сделать индексированные поля day, month, year, и повесить триггеры на их заполнение (при вставке/обновлении даты)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 10:38 |
|
||
|
поле типа date и индекс
|
|||
|---|---|---|---|
|
#18+
с учетом того что в пределах 500 кило записей у тебя явно все записи(year-month) не уникальные , есть предположение что записей например с date_part('month',поле)==10 меньше(возможно даже ~ в 12 раз :) чем записейе с date_part('year', поле)=2004 возможно отсюда и прирост в скорости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 11:11 |
|
||
|
поле типа date и индекс
|
|||
|---|---|---|---|
|
#18+
Приведите пожалуйста выдачу explain analyze для обоих запросов: "where date_part('year',поле)=..." и "where date_part('month',поле)=...". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2004, 15:59 |
|
||
|
поле типа date и индекс
|
|||
|---|---|---|---|
|
#18+
Всем спасибо, уже всё переделал. Совсем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2005, 10:12 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=32862376&tid=2007505]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
49ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 270ms |
| total: | 377ms |

| 0 / 0 |
