| 27 | === 2. Ефикасно и ефективно сортирање по created_at за Report |
| 28 | Многу важно е сортирањето по датумот кога е креиран некој извештај да биде ефикасно и ефективно исто-времено. За да постигнеме таква состојба, воведуваме индексирање, каде додаваме и соодветен tiebreaker, кој игра улога во случај 2 записи да имаат ист датум на креирањем, тогаш сортирањето се одвива според report_id кое е уникатно во самата табела.. |
| 29 | |
| 30 | {{{ |
| 31 | -- се креира индекс со име idx_report_created_with_id врз Report табелата кој ги зема во обзир колоните created_at и report_id |
| 32 | CREATE INDEX idx_report_created_with_id ON report (created_at, report_id); |
| 33 | }}} |
| 34 | Ова би овозможило сортирањето да е брзо и ефикасно кога во апликацијата би се ракувало со масовна бројка на Report записи. |
| 35 | |
| 36 | За тестирање: |
| 37 | {{{ |
| 38 | EXPLAIN (ANALYZE, BUFFERS) |
| 39 | SELECT report_id, report_type, person_id, summary |
| 40 | FROM report |
| 41 | ORDER BY created_at, report_id |
| 42 | LIMIT 20; |
| 43 | }}} |
| 44 | |
| 45 | или |
| 46 | |
| 47 | {{{ |
| 48 | EXPLAIN (ANALYZE, BUFFERS) |
| 49 | SELECT report_id, report_type, person_id, summary |
| 50 | FROM report |
| 51 | ORDER BY created_at DESC, report_id DESC |
| 52 | LIMIT 20; |
| 53 | }}} |