IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 MySQL Discussion :

Nbre de tables et performances


Sujet :

MySQL

  1. #1
    Membre expérimenté Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Points : 1 474
    Points
    1 474
    Par défaut Nbre de tables et performances
    Bonjour à tous,

    Je suis en train de penser sur le papier une future BD MySQL5 qui sera nourrie par des formulaires gérés en PHP5, et sachant que je suis débutant, plusieurs questions basiques me viennent...

    En termes de performances et d'efficacité, il vaut mieux une seule BD avec pas mal de tables (environ une bonne vingtaine) ou plusieurs petites BD avec moins de tables ???

    Et dans une table données, si un (ou plusieurs) nouveau champ est ajouté après quelques temps d'exploitation et donc une certaine quantité de données, est-ce que cela se fait sans problème (avec phpadmin par ex) et sans conséquences sur les perfs ?

    J'espère que je suis assez clair, sinon dites-le moi, je préciserais mes pensées...

    Merci d'avance de vos réponses.
    L'homme sage apprend de ses erreurs, l'homme plus sage apprend des erreurs des autres. - Confucius -

    Ma (petite...) chaine Youtube : https://www.youtube.com/channel/UCy-...P2tH5UwOtLaYKw
    Si vous avez quelques minutes, passez donc voir mon site http://www.photospicsandco.fr/
    Envie de tee-shirts (et goodies!) originaux et sympa ? Visitez mon site... http://www.zazzle.com/shkyo30

  2. #2
    Membre confirmé
    Avatar de DBProg
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Points : 579
    Points
    579
    Par défaut
    Bonjour !

    Citation Envoyé par shkyo
    Bonjour à tous,

    Je suis en train de penser sur le papier une future BD MySQL5 qui sera nourrie par des formulaires gérés en PHP5, et sachant que je suis débutant, plusieurs questions basiques me viennent...
    Parfait, allons-y !

    Citation Envoyé par shkyo
    En termes de performances et d'efficacité, il vaut mieux une seule BD avec pas mal de tables (environ une bonne vingtaine) ou plusieurs petites BD avec moins de tables ???
    Non, pas de soucis, t'inquiètes pas, ce n'est pas avec une petite vingtaine de table que ça va s'écrouler, c'est presque rien ! Il ne faut pas perdre le sens de la base non plus, une base est sensée regroupée un ensemble d'informations qui "communiquent" les unes entre elles. D'un point de vue de concéption ça n'aurait pas vraiment de sens de créer plusieurs bases, découpant ainsi l'information, pour au final, ne plus se retrouver avec quelque chose de cohérent dans aucune des bases.

    De plus, tu perdras largement en performance si tu dois accéder à des bases différentes pour les requêtes, et certaines requêtes deviendront probablement bien plus compliquée à créer.

    Citation Envoyé par shkyo
    Et dans une table données, si un (ou plusieurs) nouveau champ est ajouté après quelques temps d'exploitation et donc une certaine quantité de données, est-ce que cela se fait sans problème (avec phpadmin par ex) et sans conséquences sur les perfs ?
    On peut dire oui et non. Il y a de forte chance que les colonnes ajoutées à postériori soient placées à "DEFAULT NULL", dans quel cas tous les anciens enregistrements seront placés à NULL (dans cette colonne j'entends). Après tout dépend des traitements que tu en fais, surtout de tes SELECT. Si tu faisais des SELECT * tu rapporteras une colonne en plus, dans les jointures idem, etc... tu comprends ?

    Ce ne sera pas forcément significatif, comme je dis tout dépend de tes requêtes. Mais quoi qu'il en soit, n'hésite pas à ajouter tes colonnes si tu en as besoin bien sûr, c'est fait pour, mais c'est d'un point de vue méthode toujours mieux d'y avoir pensé au début (je pense)

    Le plus important est de bien choisir le type de données aussi. Des choses bêtes, comme tinyint, mediumint, int, peuvent influer sur la qualité des requêtes et la place prise par ta base, si le volume de données commence à devenir conséquent. Mais autant prendre les bonnes habitudes tout de suite

    Citation Envoyé par shkyo
    J'espère que je suis assez clair, sinon dites-le moi, je préciserais mes pensées...

    Merci d'avance de vos réponses.
    Idem
    De rien !
    La vitesse de la lumière étant supérieure à la vitesse du son, certaines personnes brillent encore tant qu'elles n'ont pas parlé
    -----------------------------------------------------------
    Retrouvez mes articles informatique sur mon Site Developpez.
    Le reste, sur le Site perso !


  3. #3
    Membre expérimenté Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Points : 1 474
    Points
    1 474
    Par défaut
    Citation Envoyé par dbprog
    Non, pas de soucis, t'inquiètes pas, ce n'est pas avec une petite vingtaine de table que ça va s'écrouler, c'est presque rien ! Il ne faut pas perdre le sens de la base non plus, une base est sensée regroupée un ensemble d'informations qui "communiquent" les unes entre elles. D'un point de vue de concéption ça n'aurait pas vraiment de sens de créer plusieurs bases, découpant ainsi l'information, pour au final, ne plus se retrouver avec quelque chose de cohérent dans aucune des bases.

    De plus, tu perdras largement en performance si tu dois accéder à des bases différentes pour les requêtes, et certaines requêtes deviendront probablement bien plus compliquée à créer.
    Je m'en doutais un peu, mais bon en tant que newbie, je préfère poser la question avant plutôt que de me dire "oups" quand la BD a déjà 100000 enregistrements...

    Citation Envoyé par dbprog
    On peut dire oui et non. Il y a de forte chance que les colonnes ajoutées à postériori soient placées à "DEFAULT NULL", dans quel cas tous les anciens enregistrements seront placés à NULL (dans cette colonne j'entends). Après tout dépend des traitements que tu en fais, surtout de tes SELECT. Si tu faisais des SELECT * tu rapporteras une colonne en plus, dans les jointures idem, etc... tu comprends ?

    Ce ne sera pas forcément significatif, comme je dis tout dépend de tes requêtes. Mais quoi qu'il en soit, n'hésite pas à ajouter tes colonnes si tu en as besoin bien sûr, c'est fait pour, mais c'est d'un point de vue méthode toujours mieux d'y avoir pensé au début (je pense)
    En fait, à priori les requêtes du type SELECT * devraient être très rares, dans cette base ce sera des chiffres de suivi de production indus, et donc les requêtes seront relativement précisent, car se sera surtout pour des sorties du type courbes de tendance, d'évolution, etc...

    Je suis d'accord sur le fait qu'il vaut mieux y penser avant, mais sur des applis du style suivi de prod, tôt ou tard, tu as toujours un gus te demandant un truc du genre (citation vécue...) : "C'est super, mais en fait, si l'on suivait ça en plus, ce serait le top, tu peux bien nous rajouter ça, hein ?"

    Citation Envoyé par dbprog
    Le plus important est de bien choisir le type de données aussi. Des choses bêtes, comme tinyint, mediumint, int, peuvent influer sur la qualité des requêtes et la place prise par ta base, si le volume de données commence à devenir conséquent. Mais autant prendre les bonnes habitudes tout de suite
    Pour ça, pas de problème, mais tu as raison de le rappeler !!! J'ai bien sûr prévu pour l'avenir, mais sans mettre du bigint partout !!!
    Car même si les disques durs de serveur se compte maintenant en centaine de Go, il faut rester raisonnable...

    En tout cas, merci pour ta réponse aussi précise !!
    L'homme sage apprend de ses erreurs, l'homme plus sage apprend des erreurs des autres. - Confucius -

    Ma (petite...) chaine Youtube : https://www.youtube.com/channel/UCy-...P2tH5UwOtLaYKw
    Si vous avez quelques minutes, passez donc voir mon site http://www.photospicsandco.fr/
    Envie de tee-shirts (et goodies!) originaux et sympa ? Visitez mon site... http://www.zazzle.com/shkyo30

  4. #4
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 494
    Points : 6 060
    Points
    6 060
    Par défaut
    "100000 enregistrements..." ?
    ppff tu le chatouilles le Mysql là
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  5. #5
    Membre expérimenté Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Points : 1 474
    Points
    1 474
    Par défaut
    Citation Envoyé par berceker united
    "100000 enregistrements..." ?
    ppff tu le chatouilles le Mysql là
    Et ben en fait, d'après mes calculs, cela devrait être ça, mais par mois, donc 1200000 par an... c'est mieux ?

    Blague à part, juste pour info, avec MySQL on note des ralentissements sur les requêtes basiques (petits SELECT mono ou multitables parfois) à partir de quel volume de données ??
    L'homme sage apprend de ses erreurs, l'homme plus sage apprend des erreurs des autres. - Confucius -

    Ma (petite...) chaine Youtube : https://www.youtube.com/channel/UCy-...P2tH5UwOtLaYKw
    Si vous avez quelques minutes, passez donc voir mon site http://www.photospicsandco.fr/
    Envie de tee-shirts (et goodies!) originaux et sympa ? Visitez mon site... http://www.zazzle.com/shkyo30

  6. #6
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Difficile à dire, ça dépend de la structure de la base (notamment si elle a été bien conçue...) et de la puissance du serveur.
    Pensez au bouton

  7. #7
    Membre expérimenté Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Points : 1 474
    Points
    1 474
    Par défaut
    Citation Envoyé par Maximilian
    Difficile à dire, ça dépend de la structure de la base (notamment si elle a été bien conçue...) et de la puissance du serveur.
    Mouais, d'après ce que je peux lire, par-ci par-là, la BD que je vais développer restera dans la court des petites BD avec ses 100000 enregistrements/mois et ses 150 ou 200 requêtes par jour...

    Donc, en théorie, je ne devrais pas être trop inquièté par les perfs sur mon P3 833MHz avec 1.3Go de RAM et RAID5 SCSI, sachant que début 2007 je migre sur du bi-pro XEON 2GHz avec 2Go de RAM toujours en RAID5 SCSI...

    Mais bon, tout est relatif (comme dirais l'autre), et j'aime bien me renseigner avant, c'est mieux je trouve, que quand tu es dans la mouise !!!
    L'homme sage apprend de ses erreurs, l'homme plus sage apprend des erreurs des autres. - Confucius -

    Ma (petite...) chaine Youtube : https://www.youtube.com/channel/UCy-...P2tH5UwOtLaYKw
    Si vous avez quelques minutes, passez donc voir mon site http://www.photospicsandco.fr/
    Envie de tee-shirts (et goodies!) originaux et sympa ? Visitez mon site... http://www.zazzle.com/shkyo30

  8. #8
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Citation Envoyé par shkyo
    Mouais, d'après ce que je peux lire, par-ci par-là, la BD que je vais développer restera dans la court des petites BD avec ses 100000 enregistrements/mois et ses 150 ou 200 requêtes par jour...
    Effectivement, c'est une volumétrie plutôt moyenne et la charge est faible (à moins que ça soit des requêtes avec des calculs de malade )

    Citation Envoyé par shkyo
    Donc, en théorie, je ne devrais pas être trop inquièté par les perfs sur mon P3 833MHz avec 1.3Go de RAM et RAID5 SCSI, sachant que début 2007 je migre sur du bi-pro XEON 2GHz avec 2Go de RAM toujours en RAID5 SCSI...
    Si c'est des serveurs dédiés à MySQL no soucy, par contre le premier me parait un peu étroit à moyen terme pour un serveur d'application + SGBD.
    Pensez au bouton

  9. #9
    Membre expérimenté Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Points : 1 474
    Points
    1 474
    Par défaut
    Citation Envoyé par Maximilian
    Effectivement, c'est une volumétrie plutôt moyenne et la charge est faible (à moins que ça soit des requêtes avec des calculs de malade )


    Si c'est des serveurs dédiés à MySQL no soucy, par contre le premier me parait un peu étroit à moyen terme pour un serveur d'application + SGBD.
    C'est vrai qu'il n'est plus tout jeune (7 ans !!) mon IBM, mais justement je le change dans 6 mois, ouf... Un bi-pro ça va mieux respirer !! Sachant que je n'ai qu'une grosse cinquantaine de users qui ne font pas de multimédia mais du Word/Excel "classique", au niveau charge j'ai de la marge !

    Mais je n'ai pas de serveurs d'applis, ce n'est que du serveur de données sous Win2003 Server, donc je ne pense pas que MySQL gène beaucoup...
    Pour l'instant, dans ma boite, on pratique le client "lourd" (P4 3.2GHz 512Mo RAM) ...
    L'homme sage apprend de ses erreurs, l'homme plus sage apprend des erreurs des autres. - Confucius -

    Ma (petite...) chaine Youtube : https://www.youtube.com/channel/UCy-...P2tH5UwOtLaYKw
    Si vous avez quelques minutes, passez donc voir mon site http://www.photospicsandco.fr/
    Envie de tee-shirts (et goodies!) originaux et sympa ? Visitez mon site... http://www.zazzle.com/shkyo30

  10. #10
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 494
    Points : 6 060
    Points
    6 060
    Par défaut
    Sur game boy mysql peut tourner mais vous pouvez le faire ramer avec des requête de "chien malade". Quand je vois se genre de chose. .... Like 'montruc' bon ben là je dis que c'est pas gagné! des select * from et n'avoir besoin que deux champs etc.
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Table audit performance entrepôt de donnée
    Par jdmbh dans le forum Microsoft BI
    Réponses: 3
    Dernier message: 23/09/2008, 16h35
  2. nbre de tables d une base de donnees
    Par renaissance dans le forum Langage SQL
    Réponses: 1
    Dernier message: 24/03/2008, 11h59
  3. [9i] Migration d'une table volumineuse / performance
    Par Fiora dans le forum Administration
    Réponses: 21
    Dernier message: 23/04/2007, 11h42
  4. [SQL Server] Jointure entre 2 tables et performances
    Par rmeuser dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/04/2006, 10h12
  5. [Volume des tables et performance]
    Par kase74 dans le forum InterBase
    Réponses: 9
    Dernier message: 09/03/2004, 14h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo