sql >> Database teknologi >  >> RDS >> PostgreSQL

Forskel mellem GiST og GIN indeks

Jeg tror ikke, jeg kunne forklare det bedre, end manualen allerede gør:

Når du vælger hvilken indekstype, der skal bruges, GiST eller GIN, skal du overveje disse præstationsforskelle:

  • GIN-indeksopslag er omkring tre gange hurtigere end GiST

  • GIN-indekser tager omkring tre gange længere tid at bygge end GiST

  • GIN-indekser er moderat langsommere at opdatere end GiST-indekser, men omkring 10 gange langsommere, hvis hurtig opdateringsunderstøttelse var deaktiveret [...]

  • GIN-indekser er to til tre gange større end GiST-indekser

Link og citat henvises til manualen til Postgres 9.4. Estimater af størrelse og ydeevne virkede allerede lidt forældede. Med Postgres 9.4 har oddsene ændret sig væsentligt til fordel for GIN .
Udgivelsesbemærkningerne til Postgres 9.4 inkluderer:

  • Reducer GIN-indeksstørrelsen (Alexander Korotkov, Heikki Linnakangas) [...]

  • Forbedre hastigheden af ​​multi-key GIN-opslag (Alexander Korotkov, HeikkiLinnakangas)

Størrelses- og ydeevneestimater er siden blevet fjernet fra manualen.

Bemærk, at der er specielle brugstilfælde, der kræver det ene eller det andet.

En ting du misforstod:Du aldrig få forkerte resultater med et GiST-indeks. Indekset opererer på hash-værdier, som kan føre til falske positiver i indekset. Dette bør kun blive relevant med et meget stort antal forskellige ord i dine dokumenter. Falske positiver elimineres under alle omstændigheder efter genkontrol af den faktiske række. Manualen:

Et GiST-indeks er tabsgivende, hvilket betyder, at indekset kan producere falske matches, og det er nødvendigt at kontrollere den faktiske tabelrække for at eliminere sådanne falske matches. (PostgreSQL gør dette automatisk, når det er nødvendigt. )

Fed fremhævelse mine.




  1. Sammenkædning af en kolonne med en gruppe i R

  2. Hvordan indsætter man en post og returnerer det nyoprettede ID ved hjælp af en enkelt SqlCommand?

  3. Sådan opretter du forbindelse til SQL Server Default Instance og SQL Server Navngivne Instances - SQL Server / TSQL Tutorial Del 2

  4. Sådan installeres SQLOPS på en Mac