Bonjour,
avant toutes choses, je tiens à préciser que j'ai déjà chercher, sur le forum, mais aussi sur Google. (On se sent obliger de le signifier! c'est fou : )) Bref,
J'ai installé Wamp 64 bits sur une machine local. Jusque là, pas de soucis. J'ai créé mes tables, créé ma plateforme web qui me permet de manipuler des fichiers csv puis d'insérer les données en base de données, et fait tourné l'ensemble pendant au moins une année. Jusqu'à aujourd'hui, ça m'allait bien. Mais voila, plus le temps passe et plus les données à traiter son nombreuses.
J'ai commencé par optimiser mon code PHP en prenant en compte toutes les bonnes techniques qu'on trouve ici et là sur le web. J'ai ensuite revu l'ensemble des requêtes SQL et mes tables aussi (surtout pour revoir les types de mes attributs!). Je n'étais pas trop habitué avec ce langage et comme tout débutant j'ai foncé tête baissée et appris sur le tas! J'ai donc travaillé et re-travaillé l'ensemble (code Php + base de données! et j'y ai passé du temps!)
Avec tout ça, j'ai gagné en performance; Mais pas assez! : /
J'ai donc revu la configuration apache (Mais là est un autre sujet); puis me suit amener à comprendre la configuration mysql.
Voici une partie du fichier my.ini sous sa forme originelle.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
# The MySQL server
[wampmysqld]
port = 3306
socket = /tmp/mysql.sock
key_buffer_size = 16M
max_allowed_packet = 1M
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
basedir=c:/wamp64/bin/mysql/mysql5.6.17
log-error=c:/wamp64/logs/mysql.log
datadir=c:/wamp64/bin/mysql/mysql5.6.17/data |
en parcourant les différents sites web, j'ai pu lire qu'en modifiant les paramètres key_buffer_size, max_allowed_packet, sort_buffer_size ... on pouvait atteindre de meilleurs performances! Mais voilà j'ai beau modifier toutes ces valeurs, rien n'y fait! La durée de mes traitements est toujours la même!
Première chose, j'ai vérifié le service mysql pour voir comment il était lancé:
c:\wamp64\bin\mysql\mysql5.6.17\bin\mysqld.exe wampmysqld64
là j'ai vite compris qu'un truc n'allait pas; le wampmysqld64 est censé indiquer la conf à sélectionner sous le my.ini. J'ai donc modifié: [wampmysqld] en [wampmysqld64]
j'ai prié pour que mes paramétrages changent quelque chose mais toujours rien!!
Pourquoi la modification de ces paramétrages ne modifie en rien le temps d'exécution de mes scripts.
En gros les scripts qui prennent du temps, sont des scripts qui parcourent des fichiers de plusieurs milliers de lignes et qui insèrent en base de données! globalement je passe 10min, pour un fichier de 12000 lignes sur lequel j'ai 10 informations à insérer ou à updater! (1 à 2 requêtes par ligne).
Mon serveur tourne sur une machine Windows 7 64 bits, j'ai 16 G0 de mémoires. 15 clients max utilisent l'application en même temps (application associative). La base de données fait actuellement 60 Mo!! (c'est rien!! en plus : ( )
Quels sont à votre avis les meilleurs valeurs pour les paramétrages suivants:
1 2 3 4 5 6 7 8
|
key_buffer_size = 16M
max_allowed_packet = 1M
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M |
avez-vous d'autres pistes à me conseiller pour optimiser ma config mysql? Un article aussi?
Merci pour tout! et excusez-moi, si les réponses à mes questions existent quelques part. trouver ce que l'on cherche s'avère parfois compliquer quand on n'use pas des bons mots clés! (surtout quand on n'est pas expert SGBD!) : [
Merci encore & a+!
Partager