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?
Jak przechowywać pliki?
- Rejestracja: dni
- Ostatnio: dni
Na serwerze, od tego jest system plików żebyś nie musiał zapychać gniazda bazy pierdołami.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
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?
- Rejestracja: dni
- Ostatnio: dni
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.