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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé 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 : 51
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    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.

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    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 éclairé 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 : 51
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    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 !!

  4. #4
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 513
    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 513
    Par défaut
    "100000 enregistrements..." ?
    ppff tu le chatouilles le Mysql là

  5. #5
    Membre éclairé 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 : 51
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    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 ??

  6. #6
    Membre Expert 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
    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.

+ 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