Dove salvare i file video - banca dati o un disco
-
29-09-2019 - |
Domanda
E 'una buona idea per memorizzare i file video in un database come oggetti BLOB o memorizzarli su un disco fisico.
Questo è per un sito simile a YouTube, dove gli utenti possono caricare i propri video e visualizzarli
Database Mysql sarebbe
Quale opzione è migliore e perchè
Grazie
Soluzione
Pro MySQL: - La BLOB può essere soggetto a chiavi esterne e mantenendo così la ridondanza del database invece di salvare il file system. In questo caso è necessario programmare la cancellazione del file. -. A grana fine permessi utente
Con: - MySQL non viene eseguito gratuitamente, è dotato di testa in contrasto con il servizio dal filesystem. - server web non può servire direttamente BLOB dal database. Questo significa PHP dovrà mediare il processo. Quando il BLOB viene caricato da MySQL in PHP, l'utilizzo della memoria sarà atleast grande come il BLOB. Quindi nel tuo caso in cui i file possono essere in esecuzione nelle centinaia di MB di questo avrebbe messo a dura prova sul server web.
In tutte le realtà MySQL non è mento da utilizzare per salvare i file. BLOB vengono per lo più utilizzati per salvare ammounts lare di dati serializzati come cache.
Altri suggerimenti
sto usando NFS per memorizzare contenuti multimediali da circa 5 anni senza problemi sulla prospettiva di stoccaggio. Manipolazione, la codifica e il risparmio sono gestiti tramite ffmpeg, script PHP e cron jobs. metadati video vengono memorizzati in un database MySql e la consegna web è fornito tramite Nginx (tramite una sola lettura NFS). I file video di dimensioni fino a 2 GB in questo ambiente. Probabilmente posso andare più veloce su un altro motore di db ma, il vero spreco di tempo è dovuto al processo di codifica e non per il salvataggio dei file.
Quando sto risparmiando migliaia di piccole immagini (come avatar) che io abbia mai usare MySQL solo per memorizzare i file di metadati (percorso di immagini e altre proprietà) e non per salvare il file in un campo BLOB che può rallentare il db troppo su query pesanti.