Пренапиши филтъра по година, така че индексът наистина да заработи
В оригиналната заявка филтърът по година е изразен като «извлечи годината от created_at и сравни с 2024». Проблемът: колоната е обвита във функция, планировчикът не може да използва индекса по created_at и пада до пълно сканиране на таблицата.
Пренапиши филтъра като диапазон от дати, така че планировчикът да види b-tree индекса и да го подхване (тази форма на условие се нарича «sargable»). Върни идентификатора, сумата и датата на създаване на поръчките, направени през 2024 година, сортирай по идентификатор.
Примерен очакван изход
Така изглежда правилният отговор — броят редове е негов собствен, не е задължително да съвпада с таблиците в схемата.
| id | total | created_at |
|---|---|---|
| 1 | 100 | 2024-01-05T00:00:00+00:00 |
| 2 | 150 | 2024-01-12T00:00:00+00:00 |
| 3 | 200 | 2024-01-20T00:00:00+00:00 |
Влез, за да видиш историята на решенията
ВходВлез, за да използваш ИИ ментора
Вход