„Najlepszy” zależy od tego, jaki jest Twój cel.
Dwa podstawowe sposoby przechowywania obrazów przesłanych przez użytkownika to albo umieszczenie zawartości binarnej w bazie danych jako BLOB, albo zapisanie obrazów na dysku i umieszczenie w bazie danych wpisu wskazującego, który obraz należy gdzie.
Umieszczenie obrazów w bazie danych ma tę zaletę, że nie wymaga żadnych uprawnień do systemu plików na serwerze sieciowym i usuwa wszelkie problemy z synchronizacją, jeśli obsługujesz witrynę poza wieloma serwerami sieciowymi. Jednak z biegiem czasu baza danych staje się ogromna, a jeśli nie zaprojektujesz poprawnie tabel, może to całkowicie zabić wydajność i skalowalność.
Przechowywanie obrazów jako plików w systemie plików ma tę dodatkową zaletę, że pobieranie jest niezwykle szybkie i wydajne, ponieważ serwery internetowe są bardzo dobre w udostępnianiu plików statycznych.
Zmieniono, aby dodać
Jeśli zdecydujesz się przechowywać zawartość pliku w bazie danych, absolutnie nie umieszczaj jej w tabeli, do której trzeba szybko uzyskać dostęp. Jeśli na przykład masz tabelę „użytkownicy”, która jest przeszukiwana przy prawie każdej odsłonie, to ta tabela nie miejsce, w którym można umieścić zawartość pliku. Zamiast tego utwórz oddzielną tabelę „obrazy” lub „pliki” zawierającą plik i powiązane metainformacje.
Umieszczenie wielu bajtów na wiersz w tabeli powoduje, że praca z tą tabelą jest bardzo powolna. Nie chcesz tego rodzaju rzeczy w stołach, które są często używane.