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

Lagring af lange binære (rådata) strenge

For så vidt angår PostgreSQL er bekymret, skriv text er udelukket. Den er langsommere, bruger mere plads og er mere fejltilbøjelig end bytea til formålet.

Der er grundlæggende 3 tilgange:

  1. Brug typen bytea (grundlæggende pg-ækvivalenten til SQL-blob-typen).

  2. Brug "store objekter ".

  3. Gem blobs som filer i filsystemet og gem kun filnavnet i databasen.

Hver har sine egne fordele og ulemper.

1. er ret enkel at håndtere, men kræver mest diskplads. Noget afkodning og kodning er påkrævet, hvilket gør det også langsomt. Sikkerhedskopier vokser hurtigt i størrelse!

2. er lidt akavet i håndteringen, men du har din egen infrastruktur til at manipulere klatterne - hvis du skulle få brug for det. Og du kan nemmere lave separate sikkerhedskopier.

3. er langt den hurtigste måde og bruger mindst diskplads. Men det giver ikke den referenceintegritet, som du får, når du gemmer inde i databasen.

Jeg har en række implementeringer af den slags for billedfiler:gem et lille miniaturebillede i et bytea-felt for referenceintegritet og hurtig reference. Gem originalbilledet som fil i filsystemet. Selvfølgelig skal du tænke lidt over, hvornår og hvordan du sletter forældede filer, hvordan du sikkerhedskopierer de eksterne filer og sådan.



  1. En oversigt over pgModeler til PostgreSQL

  2. Sådan ændres MySQL-serverens tidszone

  3. Lær om, hvordan du bruger SQL Server Management Studio

  4. Sådan fungerer TO_BASE64()-funktionen i MySQL