Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
01.11.2019, 11:53
|
|||
---|---|---|---|
|
|||
Индекс и сортировка по двум полям |
|||
#18+
Всем привет. Есть запрос, который выполняется очень долго. Сам запрос: Код: sql 1.
Его план Код: sql 1. 2. 3. 4. 5. 6. 7.
id - первичный ключ по колонке logdate построен индекс. Я попробовал составные индексы между ними - толку 0. Он все равно смотрит всю таблицу. Там 20 млн. записей Подскажите, пожалуйста, как заставить запрос работать по индексам! Заранее спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.11.2019, 12:55
|
|||
---|---|---|---|
|
|||
Индекс и сортировка по двум полям |
|||
#18+
_WeSTMan_Всем привет. Есть запрос, который выполняется очень долго. Сам запрос: Код: sql 1.
Его план Код: sql 1. 2. 3. 4. 5. 6. 7.
id - первичный ключ по колонке logdate построен индекс. Я попробовал составные индексы между ними - толку 0. Он все равно смотрит всю таблицу. Там 20 млн. записей Подскажите, пожалуйста, как заставить запрос работать по индексам! Заранее спасибо! 1)большие offset никак быстро работать не будут что с ними не делай... потому что всеравно надо перебрать limit+offset записей... т.е. запрос в общем случае эквивалентен limit 700000. 2)для такого order by нужен индекс (log_date DESC, id ASC) составной а вы небось просто делали (log_date, id) порядок сортировок в индексе должен совпадать с порядком сортировок в order by полностью. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.11.2019, 13:05
|
|||
---|---|---|---|
Индекс и сортировка по двум полям |
|||
#18+
Maxim Boguk1)большие offset никак быстро работать не будут что с ними не делай... потому что всеравно надо перебрать limit+offset записей... т.е. запрос в общем случае эквивалентен limit 700000. 2)для такого order by нужен индекс (log_date DESC, id ASC) составной а вы небось просто делали (log_date, id) порядок сортировок в индексе должен совпадать с порядком сортировок в order by полностью. 1. 700000 << 18 000 000. но да, быстро не будет 2 ... или с полностью инвертированным по всем измерениям ... (if btree) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.11.2019, 13:17
|
|||
---|---|---|---|
|
|||
Индекс и сортировка по двум полям |
|||
#18+
qwwq2 ... или с полностью инвертированным по всем измерениям ... (if btree) да полезное уточнение... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.11.2019, 14:01
|
|||
---|---|---|---|
|
|||
Индекс и сортировка по двум полям |
|||
#18+
Maxim Boguk_WeSTMan_Всем привет. Есть запрос, который выполняется очень долго. Сам запрос: Код: sql 1.
Его план Код: sql 1. 2. 3. 4. 5. 6. 7.
id - первичный ключ по колонке logdate построен индекс. Я попробовал составные индексы между ними - толку 0. Он все равно смотрит всю таблицу. Там 20 млн. записей Подскажите, пожалуйста, как заставить запрос работать по индексам! Заранее спасибо! 1)большие offset никак быстро работать не будут что с ними не делай... потому что всеравно надо перебрать limit+offset записей... т.е. запрос в общем случае эквивалентен limit 700000. 2)для такого order by нужен индекс (log_date DESC, id ASC) составной а вы небось просто делали (log_date, id) порядок сортировок в индексе должен совпадать с порядком сортировок в order by полностью. Спасибо большое! Все работает!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=53&tablet=1&tid=1994969]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 152ms |
0 / 0 |