Je suis responsable de certaines applications qui gèrent plusieurs To d'images. Nous avons constaté qu'il était préférable de stocker les chemins d'accès aux fichiers dans la base de données.
Il y a quelques problèmes :
- le stockage de la base de données est généralement plus cher que le stockage du système de fichiers
- vous pouvez accélérer l'accès au système de fichiers avec des produits standard prêts à l'emploi
- par exemple, de nombreux serveurs Web utilisent l'appel système sendfile() du système d'exploitation pour envoyer de manière asynchrone un fichier directement du système de fichiers à l'interface réseau. Les images stockées dans une base de données ne bénéficient pas de cette optimisation.
- des éléments tels que les serveurs Web, etc., ne nécessitent aucun codage ou traitement spécial pour accéder aux images dans le système de fichiers
- les bases de données gagnent là où l'intégrité transactionnelle entre l'image et les métadonnées est importante.
- il est plus complexe de gérer l'intégrité entre les métadonnées de la base de données et les données du système de fichiers
- il est difficile (dans le contexte d'une application Web) de garantir que les données ont été vidées sur le disque du système de fichiers