Mysql
 sql >> Base de données >  >> RDS >> Mysql

Quelle est la meilleure façon de stocker les images des utilisateurs à l'aide de PHP et MySQL ?

"Le meilleur" dépend de votre objectif.

Les deux principales façons de stocker les images téléchargées par l'utilisateur sont soit de placer le contenu binaire dans la base de données sous forme de BLOB, soit de stocker les images sur le lecteur quelque part et de mettre une entrée dans la base de données indiquant quelle image appartient où.

Placer les images dans la base de données a l'avantage de ne nécessiter aucune sorte d'autorisations de système de fichiers sur le serveur Web et supprime tout type de problème de synchronisation si vous servez le site à partir de plusieurs serveurs Web. Cependant, au fil du temps, cela rend votre base de données énorme, et si vous ne concevez pas correctement vos tables, cela peut absolument tuer vos performances et votre évolutivité.

Le stockage des images sous forme de fichier sur le système de fichiers présente l'avantage supplémentaire de rendre la récupération extrêmement rapide et efficace, car les serveurs Web sont très efficaces pour servir des fichiers statiques.

Modifié pour ajouter

Si vous décidez de stocker le contenu d'un fichier dans la base de données, ne le mettez absolument pas dans une table à laquelle il faut accéder rapidement. Si, par exemple, vous avez un tableau "utilisateurs" qui est recherché sur presque toutes les pages vues, alors ce tableau n'est pas l'endroit où mettre le contenu de votre fichier. Au lieu de cela, créez une table "images" ou "fichiers" séparée contenant le fichier et les méta-informations associées.

Mettre beaucoup d'octets par ligne dans une table rend cette table très lente à travailler. Vous ne voulez pas ce genre de chose dans les tables qui sont très utilisées.