"Bäst" beror på vad ditt mål är.
De två primära sätten att lagra användaruppladdade bilder är att antingen lägga det binära innehållet i databasen som en BLOB, eller att lagra bilderna på enheten någonstans och lägga in en post i databasen som anger vilken bild som hör till var.
Att placera bilderna i databasen har fördelen att det inte kräver någon form av filsystembehörighet på webbservern, och tar bort alla typer av synkroniseringsproblem om du servar webbplatsen från flera webbservrar. Men med tiden gör det din databas enorm, och om du inte designar dina tabeller korrekt kan det absolut döda din prestanda och skalbarhet.
Att lagra bilderna som fil i filsystemet har den extra fördelen att hämtningen blir extremt snabb och effektiv, eftersom webbservrar är väldigt bra på att servera statiska filer.
Redigerad för att lägga till
Om du bestämmer dig för att lagra filinnehåll i databasen, lägg det absolut inte i en tabell som behöver nås snabbt. Om du till exempel har en "användare"-tabell som söks i nästan varje sidvisning, är den tabellen inte platsen för att lägga ditt filinnehåll. Skapa istället en separat "bilder" eller "filer"-tabell som innehåller filen och relaterad metainformation.
Att lägga in många byte per rad i en tabell gör den tabellen väldigt långsam att arbeta med. Du vill inte ha sånt i tabeller som har stor användning.