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

Administration MySQL Discussion :

Comment va se comporter MySQL face à une grosse charge


Sujet :

Administration MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 360
    Par défaut Comment va se comporter MySQL face à une grosse charge
    Bonjour à tous et bon lundi,

    Je dois développer une application et je rencontre des contraintes nouvelles :

    - Je dois gérer 500 connexions (500 utilisateurs), au moins 60 connexions simultanées à ma base de données

    - Des types d'utilisateurs auront un temps d'accès de 1semaines à 1 mois environs

    - La base de données va grossir de façon exponentiel

    - J'aurai une centaine de tables

    Est-ce que pour assurer une charge aussi importante, MySQL répond à mes besoins ?

    Est-ce que je dois mettre en oeuvre des mécanismes particuliers pour optimiser ma bd ? A ma connaissance (certes limité) j'utilise déjà des indexes, c'est tout ce que je fais.

    Est-ce que je dois impérativement gérer des archives : par exemples les utilisateurs qui ne seront plus autorisé à se connecter, dois-je les virer de la base ou ça n'a pas d'importance si j'ai 100 000 lignes dans mes tables

    A partir de combien d'enregistrements MySQL va pédaller ?

    Est-ce qu'il y'aura un pb si j'aurai 80 personnes qui tenteront d'accèder à la base en même temps et donc lanceront des requêtes (essentiellement de création, de update)

    Voilà, je suis un peu en mode panique car je dois répondre à un besoin et jusqu'à présent je travaille sur des petites tables.

    Merci pour votre aide. N'hésitez pas à me donner tout type d'information, je suis preneur. Bonne semaine.

  2. #2
    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

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 360
    Par défaut
    Merci du lien, je vais poser ma question autrement : est-ce que certains d'entre vous utilisez MySQL pour supporter une forte charge ? Quelle est cette charge ? (nombre de connexion par jour, simultanément, nombre d'enregistrements moyens par table, nombre d'enregistrement dans la plus grosse table, etc..)
    Et enfin, quels éléments vous ont permis d'optimiser votre base de façon significative ? (procédure stockées, vues...)

    Voilà, ça fait beaucoup de questions non ? Merci des réponses que vous pourrez m'apporter.

    Aurevoir

  4. #4
    Membre Expert
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Par défaut
    C'est toujours difficile de juger de la tenue en charge. En fait sans tester je ne vois pas trop... Le nombre de requêtes compte mais aussi leur complexité, la quantité de données qu'elles lisent, la proportion d'écritures/modifications, la fraction des données en base qui servent réellement, des requêtes qui se répètes à l'identique...

    Je m'occupe d'un site qui à certains moments de l'année subit une forte charge. Le nouveau serveur bicore de la BDD tient le coup (50% de CPU) avec 2000 utilisateurs de test relativement actifs (plus que des vrais). Mais il n'y a presque aucune écriture et la BDD est assez petite pour tenir en mémoire (vu que maintenant un serveur a facile 4Go ).

    Parmi ce qui peut bien aider il y a les indexes et encore les indexes (en vérifiant qu'ils sont bien utilisés !), et aussi les indexes couvrants (avec MyIsam). Mais il ne faut quand même pas en abuser, surtout pour ce qui est beaucoup modifié.
    Le query cache est bien aussi, mais son efficacité dépend beaucoup des charges. Dans mon cas il répond à presque une requête sur deux.
    J'ai aussi un cache côté applicatif pour éviter d'interroger la base encore et encore pour des choses qui ne changent pas (mais avec le query cache l'impacte est moindre) ou pour lesquelles un résultat pas tout à fait à jour peut suffire.

    Pour l'archivage je dirais que ça peut toujours aider (ou alors du partitionnement). Mais si c'est bien indexé (et qu'il n'y a pas vraiment de requêtes qui vont aller tout retourner pour sortir des statistiques) l'intérêt est bien moindre. Si des données sont candidates à l'archivage elles ne doivent plus servir et donc pas encombrer le cache en RAM et les indexes assurent des recherches efficaces. Cependant si la volumétrie devient très importante le gonflement des indexes pourrait devenir en lui même problématique.

    Reste que de nos jours beaucoup de données ça fait... beaucoup de données. 100 000 enregistrements, ça doit nous faire compter en dizaines de Mo. Pourquoi ne pas générer des données pseudo aléatoires pour voir combien de temps l'application peut vivre avant de dépasser la mémoire d'un machine actuelle ? Et voir comment se comporte la BDD arrivée à ce point ?

    En espérant que mes divagations puissent aider.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/12/2012, 12h58
  2. Exporter une grosse DB MySql vers Ms Sql Server 2005
    Par frechy dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/11/2005, 12h26
  3. Exporter une "grosse" BD MySql
    Par frechy dans le forum Outils
    Réponses: 4
    Dernier message: 23/09/2005, 20h05
  4. Comment importer un document CSV dans une table MySql ?
    Par magic8392 dans le forum Requêtes
    Réponses: 6
    Dernier message: 04/02/2005, 11h03
  5. Réponses: 14
    Dernier message: 17/03/2003, 18h31

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