Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Outils
Outils Forum d'entraide sur les outils pour MySQL. Avant de poster -> Outils MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/02/2006, 13h43   #1
Invité de passage
 
Inscription : novembre 2005
Messages : 26
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 26
Points : 1
Points : 1
Par défaut stocker les photos sur mysql ou pas?

bonjour a tous,

j'ai une petite quetion, je fais un espace membre sur mon site, et ma question est:
qu'est qui est mieux?
stocker les photos des membres sur la table membre msql?
ou
stocker les photos sur le serveur et inserer simplement le liens des photos sur la table membre?

tout en sachant qu'il y aura de plus en plus de memebre, et max 4 photos par memebre

merci pour vos conseil

-Chico-
Chico_Latino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2006, 13h47   #2
Membre expérimenté
 
Avatar de dj-julio
 
Inscription : décembre 2005
Messages : 742
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Finistère (Bretagne)

Informations forums :
Inscription : décembre 2005
Messages : 742
Points : 576
Points : 576
tu dois impérativement stocker tes photos dans un dossier

Ta base va très vite grossir sinon
et selon ton hébergeur, la taille de la base est limitée à quelques dizaines de Mo
__________________
Mon Site/Cv.
dj-julio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2006, 13h48   #3
Membre confirmé
 
Avatar de Wormus
 
Inscription : septembre 2005
Messages : 259
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 259
Points : 207
Points : 207
Si c'était moi je placerai les photos sur le serveur et juste les liens dans la bdd
ça m'a tjr semblé logique d'utiliser cette solution et je savais pas que stocker les photos sur la bdd ça se faisait !!

J'ai vu récemment qq'un qui mettais ses photos sur sa bdd sans que cela choc personne donc en fait je sais plus trop

Donc moi aussi ça m'interresserais de savoir ça et aussi pk telle ou telle solution ??
__________________
Bankaï !!
Wormus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2006, 13h56   #4
Membre chevronné
 
Avatar de Kioob
 
Olivier Bonvalet
Inscription : septembre 2004
Messages : 550
Détails du profil
Informations personnelles :
Nom : Olivier Bonvalet
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : septembre 2004
Messages : 550
Points : 723
Points : 723
Envoyer un message via MSN à Kioob
Hello,

hors de la base, ça me semble impératif, pour divers raisons :
  • Si stockées dans la base MySQL, à chaque fois qu'un internaute va vouloir télécharger l'image, il va falloir que le script PHP la "télécharge" à son tour depuis la base de données... ce qui implique une grosse consommation en ressources.
  • Les requetes SQL sont souvent limitées à une taille de 1Mo, il se peut donc que tu n'arrives pas à charger certaines grosses images en base de données.
  • Apache se charge d'envoyer les bons entètes HTTP qui permette au navigateur de gèrer son cache. Ce qui implique un affichage fortement accéléré pour le client, moins de bande passante consommée pour le serveur, un slot Apache libéré immédiatement, voir même moins de hits HTTP si l'entete "expires" est utilisé. Bien sûr tu peux le faire en PHP, mais ça peut être assez complexe pour quelqu'un qui ne connait pas.

Concernant la peur du nombre de fichiers dans le dossier, une solution bien souvent utilisée est d'ajouter des niveaux de répertoire.
Par exemple en stockant le fichier "bidule.jpg" à l'adresse "images/b/i/bidule.jpg".
Kioob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2006, 14h02   #5
Invité de passage
 
Inscription : novembre 2005
Messages : 26
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 26
Points : 1
Points : 1
merci pour vos reponses,
oui g vu qu'on pouvais stocker les photos sur un bdd en binary mais ca je savais pas que les hebergeurs pouvais limiter l'espace de la bdd a peu de Mega

donc d'apres vos reponse, j'opterai plutot pour creer des repertoires sur le serveur pour y stocker les photos


alors alons y pour la 2eme solution
merci encore

Chico_Latino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2006, 14h09   #6
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Le seul gros intérêt du stockage dans la BDD est la simplification ultime de l'accès aux images.
Il faut voir ce que tu préfères : passer du temps à bétonner la sécurité d'accès à tes fichiers images ou bien passer du temps à gérer l'extraction des images depuis ta BDD.

Non, ce n'est pas la taille de la BDD qui est limitée à 1 Mio mais les requêtes ^^
D'ailleurs Kioob, aurais-tu davantage d'infos stp ? Je ne m'en suis jamais soucié et je n'ai jamais eu de soucis...
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2006, 14h28   #7
Membre chevronné
 
Avatar de Kioob
 
Olivier Bonvalet
Inscription : septembre 2004
Messages : 550
Détails du profil
Informations personnelles :
Nom : Olivier Bonvalet
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : septembre 2004
Messages : 550
Points : 723
Points : 723
Envoyer un message via MSN à Kioob
kirkis : cf le paramêtre "max_allowed_packet" de MySQL :
Citation:
max_allowed_packet : La taille maximale d'un paquet.

Le buffer de message est initialisé avec net_buffer_length octets, mais peut grandir jusqu'à max_allowed_packet octets lorsque nécessaire. Cette valeur est par défaut petit, pour intercepter les gros paquets, probablement erronés.

Vous devez augmenter cette valeur si vous utilisez de grandes colonnes BLOB. Cette valeur doit être aussi grande que le plus grand BLOB que vous utiliserez. Le protocole limite actuellement max_allowed_packet à 16 Mo en MySQL 3.23 et 1 Go en MySQL 4.0.
Donc si je comprends bien, ça n'affecte pas que la taille de la requete, mais également chaque ligne de résultat d'un SELECT.
Kioob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2006, 15h00   #8
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Un peu de lecture :
http://sqlpro.developpez.com/cours/stockerimages/
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2006, 15h52   #9
Membre habitué
 
Inscription : août 2005
Messages : 142
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 142
Points : 124
Points : 124
Pour ma part je stocke les photos sur le serveur avec la reference dans la bdd, car mon ami la doc mysql me l'a dit


7.2.17. Autres conseils d'optimisation
"Avec un serveur web normal, les images doivent être stockées dans des fichiers. C'est à dire, ne stockez qu'une référence au fichier d'image dans la base. La raison principale à cela est qu'un serveur web est bien meilleur pour mettre en cache des fichiers que le contenu d'une base de données. Il est donc plus rapide si vous utilisez des fichiers."
zulkifli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2006, 15h55   #10
Membre éclairé
 
Avatar de XtofRoland
 
Inscription : août 2005
Messages : 361
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 361
Points : 340
Points : 340
le seul avantage que je vois a les mettre en db, c'est lors du delete from user where... tu supprimes les fotos associées alors que ds un dossier tu dois gerer ca .
par exemple pour un menu tu peux stocker le nom du menu une icone etc en BDD et créer une fonction qui te génère le menu comme tu aura bcp de petites images apres un certains temps tu saura plus laquel est utilisé laquelle ne l'est plus.
en plus tu stocks un lien absolu ou relatif?
car si tu as un environement dvlp, test et prod...
__________________
Le but de tout developpeur OO est de devenir une référence.
Mon avatar est un ambigramme, les curieux peuvent le retourner ;-)
Aider <> Faire a la place de!!!
XtofRoland est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2006, 15h55   #11
Membre émérite
 
Avatar de macbook
 
Inscription : février 2006
Messages : 840
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 840
Points : 924
Points : 924
Dans le cas de stockage d'image dans la BDD il faut savoir que c'est possible de le faire. Mais ce n'est pas une raison suffisante pour le faire. Le mieux est de stocker des fichiers physiques sur le disque et leurs références en BDD, c'est une question de bon sens.
macbook est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2006, 15h57   #12
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Le seul avantage de tout mettre en bd est la facilité de replication, meme s'il existe des outils pour synchroniser des systèmes de fichiers. Pareil pour une migration/backup.
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h55.


 
 
 
 
Partenaires

Hébergement Web