J'ai une application Web qui stocke beaucoup de fichiers générés par les utilisateurs. Actuellement, ils sont tous stockés sur le système de fichiers du serveur, ce qui présente plusieurs inconvénients pour moi.
Donc, mes principales questions sont
Pas une réponse directe, mais quelques indications à des questions très intéressantes et similaires (oui, ce sont des blobs et des images mais c'est comparable à l'OMI).
Quels sont les inconvénients de stocker des fichiers sous forme de BLOB dans MySQL?
Existe-t-il les mêmes problèmes avec les systèmes NoSQL tels que Cassandra?
PS: Je ne veux pas être le tonnerre, mais je ne pense pas qu’une solution NoSQL résoudra votre problème (NoSQL n’est tout simplement pas pertinent pour la plupart des entreprises).
peut-être une solution hybride.
Utilisez une base de données pour stocker des métadonnées sur chaque fichier et utilisez le système de fichiers pour stocker le fichier.
toute restructuration de «dossiers» peut être modélisée dans la base de données et déréférencée à partir de l'emplacement réel du système d'exploitation.
Vous pouvez facilement stocker des fichiers jusqu’à 2 Go dans Cassandra en les divisant en colonnes de 1 Mo environ. C'est assez commun.
Vous pouvez également la stocker sous la forme d'une grosse colonne, mais vous devrez alors lire le tout dans la mémoire pour y accéder.
Si le système d'exploitation ou l'application n'a pas besoin d'accéder aux fichiers, il n'est pas vraiment nécessaire de stocker les fichiers sur le système de fichiers. Si vous souhaitez sauvegarder les fichiers en même temps que la base de données, vous n'aurez aucun avantage à les stocker en dehors de la base de données. Par conséquent, le stockage des fichiers dans la base de données peut constituer une solution valide.
Un inconvénient supplémentaire est que le traitement des fichiers dans la base de données génère plus de temps système que le traitement des fichiers au niveau du système de fichiers. Cependant, tant que les avantages l'emportent sur les inconvénients et qu'il semble que cela pourrait dans votre cas, vous pouvez l'essayer.
Ma principale préoccupation serait de gérer le stockage sur disque. Au fur et à mesure que vos fichiers de base de données deviennent volumineux, la gestion de votre base de données entière devient plus compliquée. Vous ne voulez pas sortir de la poêle et dans le feu.