powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Execution Time: 841407.191 ms
7 сообщений из 7, страница 1 из 1
Execution Time: 841407.191 ms
    #39994990
posdev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую!

Есть таблица 180Gb 800млн. строк
PostgreSQL ver 11.2

Код: sql
1.
2.
3.
4.
5.
EXPLAIN ANALYZE SELECT max(trade_id)
FROM history.trade
where market_id = 2 and currency_id = 23 

/* CREATE UNIQUE INDEX trade_market_id_market_trade_id_currency_pair_id_key ON trade_history.trade USING btree (market_id, market_trade_id, currency_pair_id);*/



авторResult (cost=6.48..6.49 rows=1 width=8) (actual time=841407.153..841407.153 rows=1 loops=1)
InitPlan 1 (returns $0)
-> Limit (cost=0.57..6.48 rows=1 width=8) (actual time=841407.143..841407.145 rows=1 loops=1)
-> Index Only Scan Backward using ix_trade_id_market_id_currency_id on trade (cost=0.57..30884671.28 rows=5228456 width=8) (actual time=841407.142..841407.142 rows=1 loops=1)
Index Cond: ((trade_id IS NOT NULL) AND (market_id = 2) AND (currency_id = 23))
Heap Fetches: 1
Planning Time: 5.782 ms
Execution Time: 841407.191 ms

Сканирование индекса занимает очень много времени, несмотря на прогноз оптимизатора Planning Time: 5.782 ms (Что было бы ОК).
Раньше работал с Сиквелом и подобные задачи решались в секунды на значительно бОльших объемах.
Перформенс монитор сервера показывает (на мой взгляд) порядок.
Подскажите, куда копать?

Заранее благодарю.
...
Рейтинг: 0 / 0
Execution Time: 841407.191 ms
    #39994993
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
posdev,

1)Planning Time - это не планируемое время а время планирования это раз.

2)покажите индекс ix_trade_id_market_id_currency_id не похоже что он подходит к запросу хоть сколько-то

3)под этот запрос надо сделать индекс
(market_id, currency_id, trade_id)
тогда будет быстро
...
Рейтинг: 0 / 0
Execution Time: 841407.191 ms
    #39994996
posdev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сорри, не тот индекс указал:

Код: sql
1.
CREATE INDEX ix_trade_id_market_id_currency_id ON history.trade USING btree (trade_id, market_id, currency_id);
...
Рейтинг: 0 / 0
Execution Time: 841407.191 ms
    #39994999
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
posdev
Сорри, не тот индекс указал:

Код: sql
1.
CREATE INDEX ix_trade_id_market_id_currency_id ON history.trade USING btree (trade_id, market_id, currency_id);



не подходит он под этот запрос совсем...
потому и тормозит
а подходящего нет

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Execution Time: 841407.191 ms
    #39995092
igor.n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
CREATE INDEX idx ON history.trade USING btree (market_id, currency_id, trade_id desc)

?
...
Рейтинг: 0 / 0
Execution Time: 841407.191 ms
    #39995110
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igor.n
Код: sql
1.
CREATE INDEX idx ON history.trade USING btree (market_id, currency_id, trade_id desc)

?


без особой потребности я бы DESC не добавлял там... оно и с ним и без него должно работать а DESC руками указанный запутывает визуально.
Так что просто CREATE INDEX CONCURRENTLY idx ON history.trade USING btree (market_id, currency_id, trade_id);
и добавить CONCURRENTLY чтобы запросы не блокировать на время внесения индекса.
...
Рейтинг: 0 / 0
Execution Time: 841407.191 ms
    #39995564
posdev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Работает, 20ms. Благодарю за подсказку.

Код: sql
1.
2.
 create index ix_trade_market_id_currency_id_trade_id
   on history.trade (market_id, currency_id, trade_id);
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Execution Time: 841407.191 ms
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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