Indicii în postgresql companie postgres profesional

Indicii în postgresql companie postgres profesional

În această serie de articole vom vorbi despre indici în PostgreSQL.

Orice întrebare poate fi văzută din diferite puncte de vedere. Vom vorbi despre ceea ce ar trebui să fie interesat de dezvoltator de aplicații, folosind SGBD: ce există indicii, de ce PostgreSQL sunt atât de multe diferite, și cum să le folosească pentru a accelera interogări. Poate că, tema ar putea fi cuvinte deschise și mai puține, dar în secret speranță pentru dezvoltatorii curioși, care sunt, de asemenea, interesat în detaliile structurii interne și, în plus, că înțelegerea unor astfel de detalii nu se poate doar asculta opiniile altora, dar, de asemenea, pentru a trage propriile concluzii.

Indicii în postgresql companie postgres profesional

În prima parte, am vorbit despre modul în care metoda de acces ar trebui să ofere informații despre dumneavoastră. Să vedem cum funcționează această interfață.

Toate proprietățile metodelor de acces sunt reprezentate în tabelul pg_am (metoda am-acces). Din acest tabel puteți obține lista metodelor disponibile: btree, hash, gist, gin, spgist, brin

Deși metodele de acces pot fi atribuite în mod legal scanării secvențiale, istoricul sa dovedit că nu se află pe această listă.

Indicii în postgresql companie postgres profesional

În primul articol, am discutat mecanismul de indexare PostgreSQL, în cel de-al doilea - interfața metodelor de acces, iar acum suntem gata să vorbim despre anumite tipuri de indici. Să începem cu un indice de hash.

Multe limbi de programare moderne includ tabelele de tip hash ca tip de date de bază. În exterior, aceasta arată ca o matrice normală, dar indexul nu este un întreg, ci orice tip de date (de exemplu, un șir). Indicele hash din PostgreSQL este aranjat într-un mod similar. Cum funcționează?

Indicii în postgresql companie postgres profesional

Am considerat deja mecanismul de indexare PostgreSQL și interfața metodelor de acces, iar una dintre metodele de acces este indexul hash. Acum hai să vorbim despre cel mai tradițional și folosit indice - arborele B. Capitolul sa dovedit grozav, aveți răbdare.

Indicele btree, de asemenea B-tree, este potrivit pentru datele care pot fi sortate. Cu alte cuvinte, pentru tipul de date trebuie să fie definite operatorii "mai mare", "mai mare sau egal cu", "mai puțin", "mai mic sau egal cu" și "egal". Rețineți că aceleași date pot fi sortate uneori în moduri diferite, ceea ce ne aduce înapoi la conceptul de familie de operatori.

Indicii în postgresql companie postgres profesional

GiST este o abreviere a "arborelui de căutare generalizat". Acesta este un arbore de căutare echilibrat, la fel ca b-tree-ul considerat anterior.

Care este diferența? Indicele b-tree este strâns legat de semantica de comparație: suportul pentru operatori "mai mult", "mai puțin", "egal" este tot ceea ce este capabil (dar este foarte bun!). Dar în bazele de date moderne sunt stocate și astfel de tipuri de date pentru care acești operatori pur și simplu nu au sens: geodate, documente text, imagini ...


În cea de-a cincea parte a seriei de articole despre indecșii din DBMS, PostgreSQL nu se încheie și deja Yegor Rogov scrie un sequel.

Indicii în postgresql companie postgres profesional