sql >> Database >  >> RDS >> PostgreSQL

Zijn er prestatieproblemen bij het opslaan van bestanden in PostgreSQL?

Je hebt in principe twee keuzes. U kunt de gegevens direct in de rij opslaan of u kunt gebruik maken van de faciliteit voor grote objecten. Aangezien PostgreSQL nu iets gebruikt genaamd TOAST Als u grote velden uit de tabel wilt verwijderen, mag er geen prestatieverlies optreden bij het rechtstreeks opslaan van grote gegevens in de rij. Er blijft een limiet van 1 GB voor de grootte van een veld. Als dit te beperkt is of als u een streaming-API wilt, kunt u de grote objectfaciliteit gebruiken, die u iets meer als bestandsdescriptors in de database geeft. U slaat de LO-ID op in uw kolom en kunt van die ID lezen en schrijven.

Ik zou persoonlijk aanraden om de grote objectfaciliteit te vermijden, tenzij je het absoluut nodig hebt. Met TOAST worden de meeste use-cases gedekt door de database te gebruiken zoals u zou verwachten. Met grote objecten geef je jezelf extra onderhoudslast, omdat je de LO-ID's die je hebt gebruikt moet bijhouden en ze moet ontkoppelen wanneer ze niet meer worden gebruikt (maar niet eerder), anders blijven ze in je gegevensmap die voor altijd ruimte inneemt. Er zijn ook veel faciliteiten die zich rondom hen buitengewoon gedragen, waarvan de details mij ontgaan omdat ik ze nooit gebruik.

Voor de meeste mensen is de grote prestatiefout die gepaard gaat met het opslaan van grote gegevens in de database, dat uw ORM-software de grote gegevens bij elke zoekopdracht tevoorschijn haalt, tenzij u specifiek instrueert dat niet te doen. U moet ervoor zorgen dat Hibernate of wat u ook gebruikt, deze kolommen als groot beschouwt en ze alleen ophaalt wanneer hier specifiek om wordt gevraagd.



  1. Sqlalchemy, onbewerkte query en parameters

  2. Wamp Server opnieuw installeren zonder de bestaande mysql-database te vervangen

  3. Afbeeldingen opslaan in bestandssysteem als bestanden of in BLOB-databaseveld als binaire bestanden

  4. Kopieer meerdere CSV-bestanden naar postgres