Table mysql à 1Go, 5 millions d'entrée, le serveur rame...

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par benjiman, 17 Décembre 2007.

  1. benjiman
    benjiman WRInaute discret
    Inscrit:
    9 Octobre 2005
    Messages:
    219
    J'aime reçus:
    0
    Bonjour !!

    Voila, j'ai un EG 2007 (reloaded) de chez OVH (soit 2x1,8 Ghz, 2 Go de DDR) et j'ai un gros problème avec Mysql (ce serveur n'est que un serveur mysql).

    En effet, j'ai une table d'environ 5 millions d'entrées pesant à peu pres 1,1 Go.

    Malgré un parfait choix des clés ... le site rame énormement lorsqu'on lui parle de cette table !
    Je viens de voir en plus, par le script d'aide de configuration de mysql que 75% de mes clés sont enregistrées sur le disque dur et non pas dans la ram ...
    (d'un autré coté, c'est normal ... je ne vais pas fixé à 2 Go de Ram la quantité de clés enregistrés dans la Ram ... Ca ne laisserait rien a mysql en lui meme....)

    D'où ma question : COMMENT je peux faire pour que mysql puisse acceder à cette table sans délai de 1 minute pour chaque demande ?

    Parce que prendre un serveur avec 4 Go de Ram, je veux bien, mais ca ne va rien me changer parce que dans 2 mois, il faudra en prendre 8 etc.


    Voila, j'espère que vous aurez une solution à mon problème
     
  2. rikew
    rikew WRInaute impliqué
    Inscrit:
    19 Décembre 2002
    Messages:
    683
    J'aime reçus:
    2
    ya quoi comme données dans la table ?
    si c'est des logs tu devrait les archiver. tu regroupe tout les logs d'une journée dans un seul enregistrement.
     
  3. Genesys
    Genesys Nouveau WRInaute
    Inscrit:
    2 Mars 2004
    Messages:
    36
    J'aime reçus:
    0
    Une table de cette taille n'est pas insurmontable. Tout dépend de la manière dont on y extrait les informations. Les performances se dégradent sensiblement dans le cas d'une requête avec un ORDER BY ou un SELECT qui parcourt toutes les lignes de la table.

    Il est possible, et à condition de disposer d'une version MySQL récente, de partitionner la table :
    http://krierjon.developpez.com/mysql/partitionnement/
     
  4. bozoleclown
    bozoleclown WRInaute impliqué
    Inscrit:
    24 Novembre 2005
    Messages:
    693
    J'aime reçus:
    0
    Re: Table mysql à 1Go, 5 millions d'entrée, le serveur rame.

    je pense que tu as du te poser la question si tu souhaites accéder rapidement à ses infos mais as tu vraiment besoin de TOUTES ces infos et en temps réel ?

    Serait-il tolérable par exemple de n'accéder uniquement à J+1 aux données du jour J ?
    Est ce que tu peux découper les données en données utiles et une autre partie moins utile ?
    Tu n'as pas d'index FULLTEXT dessus au moins ? car ca ca fait ramer ?

    Qu'elle est la nature des opérations que tu fais sur la table ? beaucoup d'insert / update ? si oui cela demande de la part de mysql de mettre à jour ses index ?

    As tu des index sur toutes les colonnes ? peux tu supprimer des indexs et en mettre uniquement sur les colonnes qui dispose de foreignkey ?

    bref des débuts de réflexions...

    ps : c'est quoi comme données qui grossit aussi vite ? archivage de flux rss ?
     
  5. david96
    david96 WRInaute passionné
    Inscrit:
    28 Août 2005
    Messages:
    1 204
    J'aime reçus:
    0
    Sujet intéressant, on peut tous y avoir droit un jour.
    As tu optimisé tes index ?
    Via la console ou phpmyadmin qu'est-ce que te donnes la commande explain devant tes requêtes SQL ?
     
  6. rog
    rog WRInaute passionné
    Inscrit:
    21 Septembre 2006
    Messages:
    1 346
    J'aime reçus:
    0
    les dernières versions loggent les slow query me semble-t-il

    ça devrait dejà te mettre sur une piste

    il y a tellement de facteurs qui peuvent freiner tes requêtes

    rog
     
  7. gilles000000
    gilles000000 Nouveau WRInaute
    Inscrit:
    9 Décembre 2005
    Messages:
    49
    J'aime reçus:
    0
    Les requêtes qui ont accès à ta base de données sont très importantes.
    Notre base de données contient plusieurs tables de plus de 1 millions d'enregistrements. Il y a 1 an, nous avons dû revoir complètement toutes les requêtes de notre site. Mysql est capable d'en prendre sans problème mais il faut savoir s'en servir correctement.
    Il a fallu revoir toutes les recherches et convertir des champs en FullText. Faire un select sur plusieurs champs en texte peut être pénible pour Mysql. C'est pour ça qu'il ont inventé la clé FullText.
    Également, faire des requêtes JOIN , ou encore, des ORDER BY, peut être fastudieux pour Mysql si c'est mal fait.
    Il est vrai que notre base de données de notre site est sur un serveur dédié à lui seul mais tout de même, il y a environ 22 millions de requêtes par jour sur notre base de données et il se comporte très bien
     
Chargement...
Similar Threads - Table mysql 1Go Forum Date
Supprimer les doublons d'une table mysql Développement d'un site Web ou d'une appli mobile 16 Juin 2020
message : [LEGACY][libmysqlclient] Please consider moving to stable and mysqlnd in Administration d'un site Web 8 Novembre 2018
Fusionner deux champs sur la même table et même base de donnée Mysql Administration d'un site Web 12 Septembre 2018
PHP -Problème retraitement données Mysql avant envoit dans un tableau array Développement d'un site Web ou d'une appli mobile 28 Décembre 2016
Tableau PHP a partir de MySQL Développement d'un site Web ou d'une appli mobile 5 Décembre 2015
Pour MySQL : myisam_use_mmap = 1 souhaitable ? Développement d'un site Web ou d'une appli mobile 3 Juin 2015
Utiliser des INT ou des VARCHAR pour les relations entre les tables MySQL ? Développement d'un site Web ou d'une appli mobile 9 Avril 2015
SUM de 2 champs identiques dans deux tables mysql différentes Administration d'un site Web 9 Octobre 2014
Modification d'un ligne d'une table MySQL Développement d'un site Web ou d'une appli mobile 10 Mai 2014
[MySQL] Requête SELECT et INSERT entre 3 tables liées+Aide Développement d'un site Web ou d'une appli mobile 30 Avril 2014
[MYSQL] Comment remplacer caractères dans tous les champs de toutes les tables d'une base? Développement d'un site Web ou d'une appli mobile 11 Juillet 2013
Optimisation recherche sur grosse table mysql Développement d'un site Web ou d'une appli mobile 30 Mars 2013
Mysql - un Group by non trié sur plusieurs tables ... Développement d'un site Web ou d'une appli mobile 13 Mars 2013
effacer sujet dans une table mysql Développement d'un site Web ou d'une appli mobile 7 Janvier 2013
MySQL - Table avec environ 60 colonnes Développement d'un site Web ou d'une appli mobile 13 Décembre 2012
remplir un base MySQL automatiquement à partir d'excel et dans différentes tables Développement d'un site Web ou d'une appli mobile 23 Septembre 2011
[MySQL] Requête SELECT entre 3 tables liées Développement d'un site Web ou d'une appli mobile 10 Août 2011
Tirage aléatoire dans une table MySQL (solutions et questions) Développement d'un site Web ou d'une appli mobile 21 Juillet 2011
Mysql : select sur plusieurs tables? Développement d'un site Web ou d'une appli mobile 20 Juillet 2011
Tables MySQL corrompues Administration d'un site Web 29 Mai 2011