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

Kolonne Butiksplaner

Over på pgsql-general spørger Bráulio Bhavamitra:

Dette er et ret interessant spørgsmål. Helt udskiftning af den nuværende rækkebaserede butik ville ikke være en god idé:det har tjent os ekstremt godt, og jeg er ret sikker på, at det ville være katastrofalt præstationsmæssigt for OLTP-brug, at erstatte den helt med en kolonneformet butik.

Nogle kolonner. Billede udlånt af Yiming Sun på Flickr

Det betyder ikke, at søjleformede butikker generelt er en dårlig idé - for det er de ikke. De har bare en mere begrænset use case end "hele databasen". For analytiske forespørgsler om vedhæftede data er et søjlelager en meget mere passende repræsentation end det almindelige rækkebaserede lager, men ikke alle databaser er analytiske.

Men for at opnå interessante præstationsgevinster skal du gøre meget mere end blot at ændre det underliggende lager:du skal sikre, at resten af ​​systemet kan drage fordel af den ændrede repræsentation, så det kan udføre forespørgsler optimalt; for eksempel vil du måske have aggregater, der fungerer i SIMD-tilstand i stedet for én værdi-ad-gangen, som det er i dag. Dette er i sig selv en stor virksomhed, og der er også andre udfordringer.

Som det viser sig, er der et team hos 2ndQuadrant, der arbejder præcist med disse spørgsmål. Vi postede en patch sidste år, men den var ikke særlig interessant - den gav kun en enkeltcifret procentvis forbedring i TPC-H-score; ikke nok til at genere udviklingssamfundet med (det var et ret invasivt plaster). Vi vil have mere end det.

I vores design vil søjleformet eller ej være en mulighed:du vil være i stand til at sige Kære server, for dette bord skal du venligst oprette søjleopbevaring for mig, ville du? Mange tak . Og så får du en tabel, som kan være langsommere til almindelig brug, men som vil rokke ved analyser. For de fleste af dine tabeller vil den nuværende rækkebaserede butik sandsynligvis stadig være den bedste mulighed, fordi rækkebaserede opbevaring er meget bedre egnet til de mere generelle tilfælde.

Vi har ikke en tidsplan endnu. Følg med.


  1. Sådan fungerer MID()-funktionen i MySQL

  2. Nulstil AutoIncrement i SQL Server efter sletning

  3. MySQL pivot række til dynamisk antal kolonner

  4. Kan jeg gemme billeder i MySQL