Table mysql à 1Go, 5 millions d'entrée, le serveur rame...
7 messages
• Page 1 sur 1
- benjiman
- WRInaute occasionnel

- Messages: 254
- Inscription: 9 Oct 2005
Table mysql à 1Go, 5 millions d'entrée, le serveur rame...
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
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
- Genesys
- Nouveau WRInaute

- Messages: 32
- Inscription: 2 Mar 2004
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/
Il est possible, et à condition de disposer d'une version MySQL récente, de partitionner la table :
http://krierjon.developpez.com/mysql/partitionnement/
- bozoleclown
- WRInaute impliqué

- Messages: 893
- Inscription: 24 Nov 2005
Re: Table mysql à 1Go, 5 millions d'entrée, le serveur rame.
benjiman a écrit: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.
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 ?
- gilles000000
- WRInaute discret

- Messages: 70
- Inscription: 9 Déc 2005
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
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
7 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Copier une table d'un serveur mysql a un autre en php
- PHP MySql copy table à table [RESOLU]
- Choisir une entrée mysql au hasard
- [MySQL] Comment effacer simplement la dernière entrée ?
- [PHP/MySQL] Augmenter la valeur de 1 sur une entrée INT
- Serveur Intel Quad 8x 2GHZ et 8 Go de mémoire mais ça rame !! [Appel au experts]
- rame ramons ramé référencé mon site
- UPDATE TABLE MYSQL !
- table mysql : category
- Séparer une table MySQL
Consultez la description détaillée des produits ou services de Google suivants : Google Web Accelerator, Google Website Optimizer
- Analyse de la classe C (adresse IP)
Cet outil vous permet de vérifier si plusieurs sites sont hébergés sur la même classe C (adresse IP du serveur). - Suggestion de mots
Cet outil vous fournit une liste de mots sémantiquement proches du mot que vous fournissez en entrée. Il peut servir à vous donner des idées de mots à utiliser sur vos pages, voire de contenus à ajouter.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


