Chciałbym zrobić serwis (używając PHP i MySQL) na który użytkownicy będą mogli wrzucać kody źródłowe programów. I powstaje pytanie: Jak przechowywać te kody programów? W bazie danych czy jako pliki na serwerze?
Na serwerze, od tego jest system plików żebyś nie musiał zapychać gniazda bazy pierdołami.
Demonical Monk napisał(a)
Na serwerze, od tego jest system plików żebyś nie musiał zapychać gniazda bazy pierdołami.
Tzn. ogólnie trzymanie plików w MySQL jest złe?
tak. z praktycznego punktu widzenia powoduje problemy przy backupach (co jakiś czas trzeba zrobić pełen backup, nie tylko różnicowy), a w razie ewentualnego przywracania bazy kosmicznie wydłuża czas tej operacji przy dużej objętości plików. do tego jeśli masz w bazie dużo plików, to częste operacje odczytu zaśmiecają cache, powodują nadmiarowe operacje IO, a przede wszystkim opóźniają wykonanie innych operacji. co prawda piszę o mssql, a nie mysql, jednak ogólne założenia są takie same.
oczywiście w szczególnych przypadkach, szczególnie przy bardzo małej ilości plików, może to nie być złe rozwiązanie, jednak "małe" ilości mają tendencję do rośnięcia do "fhuj duże". i tak oto mamy problem z bazą danych portalu pewnego ministerstwa, która spuchła do kilkuset GB na przestrzeni kilku lat i puchnie dalej.