| | 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 | }}} |