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

Requêtes MySQL Discussion :

[Efficacite/Redondance] Millions d'enregistrement dans MySQL


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Inscrit en
    Avril 2004
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 61
    Points : 43
    Points
    43
    Par défaut [Efficacite/Redondance] Millions d'enregistrement dans MySQL
    Bonjour,

    J'ai entendu dire qu'il etait possible d'ajouter des millions d'enregistrements dans MySQL. Est-ce vrai ?

    Si c'est vrai, est ce efficace de parcourir une table avec tant d'enregistrements ? Comment ameliorer ce probleme ?

    Imaginons que des centaines de milliers d'utilisateurs fassent des requetes sur une table mysql ... qui est cense etre une table avec des milliers/millions d'enregistrements ... Comment etre efficace ?
    La solution serait telle d'avoir plusieurs meme replications de la BD et de donner acces a une BD a certains utilisateurs : par exemple si le nom de famille commence par A alors il aura acces a la BD 1 , si le nom de famille commence par B alors il aura acces a la BD 2 (qui est la meme que la BD1) ... serait ce la solution ? Si oui, comment repliquer les BDs en MySQL ? y aurait-il un downtime ?

    Pour etre efficace, faudrait-il plusieurs BD repliques sur plusieurs serveurs differents ? Ou bien sur le meme serveur ?

    Merci a ceux qui m'eclaireront et qui peuvent me donner des precisions ou des articles a ce sujet.

    merci

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 414
    Points : 671
    Points
    671
    Par défaut
    oui c'est possible. Perso, je bosse sous Oracle et DB2 sur lesquelles j'ai une table de 900 millions de lignes.

    Non le parcours d'une telle table n'est pas du tout efficace.

    Solutions :
    1/ Index
    2/ Partitionnement de la table.

    Si milliers d'utilisateurs, les requetes SQL doivent être écrites pour utiliser les index et la clé de partitionnement. Comme ca c'est sans souci.

    Petite remarque, il est rare d'avoir des milliers d'utilisateurs qui se connectent réellement à la base. En prog "propre", on fait un pool de connexions permanetes à la base.

    La réplication est une solution mais pas pour solutionner des pbes de volumétrie mais de disponibilité.

    Comme la réplication ne sert pas à gérer la volumétrie, il serait bête de répliquer sur la même machine.

    Je connais pas le processus de réplication sous Mysql donc je ne peux t'aider qu'en te donnant un lien vers la doc.
    http://dev.mysql.com/doc/mysql/fr/replication.html

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 145
    Points : 180
    Points
    180
    Par défaut
    Bonjour,

    Je ne pense pas que la réplication soit la solution que tu recherche.
    Regarde plutôt du côté du clustering : http://www.mysql.com/products/cluster/

  4. #4
    Membre du Club
    Inscrit en
    Avril 2004
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 61
    Points : 43
    Points
    43
    Par défaut
    Ren0,

    Merci pour l'info, je vais prendre le temps de lire tout ca.
    As tu deja utilise ?

    Gregory,

    Merci aussi.

    1) Index : tu veux qu'il fait que j'indexe les champs de la table pour optimiser ? cela irait plus vite ? Quels champs ? Seulement les cles primaires, etrangeres, les autres champs ?

    2) Partionnement : cela m'interesse. Que veux tu dire par la ?

    "En prog "propre", on fait un pool de connexions permanetes à la base" : je suis tres interesse aussi. Peux tu m'en dire davantage ? as tu des liens, articles a me conseiller ?

    merci a vous deux.

  5. #5
    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
    Salut,

    Concernant les index et les performances tu peux trouver des infos dans la FAQ MySQL.

    A noter que le partitionnement de tables (selon plusieurs méthodes : hash, range...) ne sera disponible qu'à partir de MySQL 5.1, autant dire pas avant longtemps

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

Discussions similaires

  1. [MySQL] Enregistrement dans mysql
    Par mioke dans le forum PHP & Base de données
    Réponses: 30
    Dernier message: 31/03/2008, 16h28
  2. Formulaire ajout enregistrement dans MySQL
    Par dahu17 dans le forum Langage
    Réponses: 2
    Dernier message: 05/02/2008, 13h07
  3. Enregistrer dans Mysql multiples cases a cocher
    Par didiweby dans le forum Langage
    Réponses: 2
    Dernier message: 05/01/2008, 17h42
  4. Détection d'enregistrement dans MySQL
    Par fabou3377 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/11/2006, 18h33
  5. Réponses: 10
    Dernier message: 21/06/2006, 14h50

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