Palygintos duomenų bazės
PostgreSQL: duomenų bazių profesionalai baigia
„PostgreSQL“ yra atvirojo kodo reliacinė duomenų bazė, kurią inžinieriai rekomenduoja kitiems inžinieriams: į standartus orientuotą SQL, operacijų modelį, kurio dokumentaciją verta perskaityti, ir plėtinio ekosistemą, kuri vieną duomenų bazę paverčia GIS, paieškos, vektorių saugykla ir orkestravimo platforma. Kaina yra sąžiningi priežiūros reikalavimai, ypač vakuuminė disciplina ir konfigūracija, kurioms skiepijant pagal numatytuosius MySQL tipo nustatymus niekas nepasiruošia.
Pagrindiniai punktai
- MVCC yra architektūros parašas: skaitytuvai nieko neblokuoja, atnaujinimai yra kelių versijų eilučių formos, o pasibaigusios versijos išlieka tol, kol VACUUM juos atgaus; Vakuuminis derinimas (autovakuuminės išlaidos, slenksčiai vienam užimtam stalui) yra darbo dalis, susijusi su didelio susitraukimo schemomis, o ne pasirenkama higiena.
- Išplėtimo paviršius yra ypatybė: PostGIS paverčia jį rimta GIS, pg_stat_statements našumo derinimą iš folkloro paverčia faktais, suspaudimo WAL archyvavimo įrankiai (pgBackRest/barman) įgalina atkūrimą tašku, o pgvector paverčia jį semantinės paieškos parduotuvių struktūra.
- JSON yra aukščiausios klasės: jsonb saugykla pateikia indeksuotas dokumentų užklausas reliacinėje schemoje: ši pora pašalina argumentą „reikia dokumentų saugyklos“ daugeliui vidinių įrankių.
- Replikacija ir HA yra brandžios, bet rankinės: srautinis replikavimas ir replikacijos laiko tarpsniai yra bazinė linija; loginis replikavimas įgalina tikslinius atnaujinimus ir atrankinį sinchronizavimą; Patroni / postgres-operatoriaus personalas yra anksčiau, tačiau gamybos HA vis dar reikalauja parengtų ir patikrintų procedūrų.
- Atsarginės kopijos kūrimo disciplina: WAL archyvavimas ir periodinės bazinės atsarginės kopijos ir patikrinta atkūrimo repeticija; Vien pg_dump nėra atsarginis planas, skirtas darbo krūviams, kuriems priklauso darbo laikas, nors jis išlieka teisėtas įrankis mažiems krūveliams.
- Numatytoji padėtis mūsų palyginimuose: kai schema yra santykinė, duomenys yra gaminio centre, o komanda skaito vadovą, PostgreSQL numatytieji nustatymai bus daug pajėgesni nei bet kurie MySQL stiliaus numatytieji nustatymai; kai užduotis yra 100 mažų TVS duomenų bazių viename langelyje, MySQL / MariaDB skydelio ekosistema lieka numatytoji dėl veikimo paviršiaus, o ne variklio balo.
Pastaba iš praktikos
Komandai, išaugusiai į PostgreSQL, prireikė vieno automatinio vakuuminio epizodo, kad išmoktų MVCC: analizės langelis lėtėjo po masinio atnaujinimo, o „dead-tuple“ metrika paaiškino, ko negali kiekviena buferio derinimo intuicija. Vakuuminis derinimas dabar yra jų vadovų dalis.
Dažniausiai užduodami klausimai
PostgreSQL vs MySQL: kada Postgres aiškiai čia?
Sudėtingas reliacinis darbas, dešimčių lentelių sujungimas, analizė DB viduje ir laukai, tokie kaip GIS / vektorinė paieška: PostgreSQL. Dėl skydelio įrankių smulkiagrūdė bendrojo TVS priegloba pagal numatytuosius nustatymus yra MariaDB kaip siuntimas.
Kiek agresyvus turėtų būti autovakuumas?
Pakankamai agresyvus, kad sugadintas churn nepažeistų užklausų planavimo. Didelio atnaujinimo schemoms yra automatinio vakuumo kainos langai, slenksčiai ir kiekvienos lentelės derinimas; Sąžininga praktika yra stebėti (pg_stat_user_tables gyvų / mirusių eilučių skaičių), tada derinimas pagal darbo krūvį.
Ar pgvector tinka gamybos semantinei paieškai?
Esant nedideliam duomenų kiekiui, tai pragmatiška, plėtiniais pagrįsta vektorių saugykla, kurios indeksavimo parinktys vis dažniau rodo gerą našumą. Specialios vektorinės duomenų bazės geriau atliepia kai kuriuos darbo krūvius (didelis mastas, paskirstytas rašymas), tačiau norint pridėti semantinę paiešką prie esamos reliacinės programos, tai puikiai tinka.
Kodėl mano duomenų bazė lėtėjo po masinių atnaujinimų?
Klasikinis MVCC požymis: negyvos versijos išpučia lenteles ir indeksus, kol pasiveja automatinis vakuumas; ilgos operacijos sustabdo valymą. Stebėkite mirusias eilutes ir užrakinimo trukmę, o ne spėliokite apie buferius.
Kaip Kinetikatech padeda su palygintos duomenų bazės
Tai sprendėme šimtus kartų: Duomenų bazės variklio parinktys, skirtos prieglobos darbo krūviams, palyginti su teisingumo garantijomis, eksploataciniu svoriu ir realiomis sąnaudomis: įterptieji varikliai su serveriais, MySQL su PostgreSQL, SQL su dokumentų saugyklomis, taip pat senas atvejo tyrimas, kuris vis grįžta. Su Serverių administravimas ir Svetainės spartos optimizavimas gaunate visą ciklą: vertiname, įgyvendiname, stebime nepertraukiamai ir reaguojame per 30 minučių, kai reikia.