| 1 | == Индексирање |
| 2 | |
| 3 | //некој вовед |
| 4 | |
| 5 | === 1. Брзо пребарување при најава на апликацијата |
| 6 | Ова е едно од покористиените сценарија каде соодветно најавата на корисникот наложува проверка за негово постоење, кое се врши преку прецизна споредба со email адресата. |
| 7 | |
| 8 | Доколку би имале гооолем број корисници, ќе треба некако да се пребаруваат побрзо корисниците |
| 9 | за да може најавата да се одвива без многу чекање. Затоа, ќе поставиме индекс за лесно пребарување по email. |
| 10 | Овој е BTREE индекс и е доста погоден за конкретни пребарувања (where email = :param) |
| 11 | |
| 12 | ''Напомена: Login акцијата оди преку email, бидејќи истиот е поставен како уникатен, и 1 електронска адреса може да припаѓа на само 1 корисник во базата.'' |
| 13 | |
| 14 | {{{ |
| 15 | -- Појаснување:креира индекс со назив idx_user_email на табелата reportiumuser за колоната email |
| 16 | CREATE INDEX IF NOT EXISTS idx_user_email ON reportiumuser (email); |
| 17 | }}} |
| 18 | |
| 19 | За да се провери кога би имало многу податоци: |
| 20 | {{{ |
| 21 | EXPLAIN (ANALYZE, BUFFERS) |
| 22 | SELECT password_hash |
| 23 | FROM reportiumuser |
| 24 | WHERE email = :parameter_email ; |
| 25 | }}} |
| 26 | |