sql >> Database >  >> RDS >> Mysql

Wat is de beste manier om afbeeldingen van gebruikers op te slaan met PHP en MySQL?

"Beste" hangt af van wat je doel is.

De twee belangrijkste manieren om door gebruikers geüploade afbeeldingen op te slaan, zijn ofwel de binaire inhoud in de database plaatsen als een BLOB, of de afbeeldingen ergens op de schijf opslaan en een invoer in de database plaatsen die aangeeft welke afbeelding waar hoort.

Het plaatsen van de afbeeldingen in de database heeft het voordeel dat er geen bestandssysteemmachtigingen op de webserver nodig zijn, en verwijdert alle synchronisatieproblemen als u de site vanaf meerdere webservers aanbiedt. Na verloop van tijd maakt het uw database echter enorm, en als u uw tabellen niet correct ontwerpt, kan dit uw prestaties en schaalbaarheid absoluut teniet doen.

Het opslaan van de afbeeldingen als bestand op het bestandssysteem heeft als bijkomend voordeel dat het ophalen extreem snel en efficiënt gaat, aangezien webservers erg goed zijn in het bedienen van statische bestanden.

Bewerkt om toe te voegen

Als u besluit om bestandsinhoud in de database op te slaan, plaats deze dan absoluut niet in een tabel die snel toegankelijk moet zijn. Als u bijvoorbeeld een "gebruikers"-tabel heeft die in bijna elke paginaweergave wordt doorzocht, dan is die tabel niet de plaats om uw bestandsinhoud te plaatsen. Maak in plaats daarvan een aparte "afbeeldingen"- of "bestanden"-tabel met het bestand en gerelateerde meta-informatie.

Door veel bytes per rij in een tabel te plaatsen, is die tabel erg traag om mee te werken. Dat soort dingen wil je niet in tabellen die intensief worden gebruikt.



  1. hoe mysql-tabel opnieuw te indexeren?

  2. TransactSQL om een ​​ander TransactSQL-script uit te voeren

  3. Syntaxisfout of toegangsfout:1059 ID-naam is te lang

  4. Volgnummers maken in PostgreSQL