MySQL lock table

52 réponses
AuteurMessage

Salemioche | Nicolas
Membre

Photo de Salemioche

Inscrit le : 26/12/2008

# Le 12/02/2012 à 21:35

Bool a dit :
MyISAM est une plaie à réserver qu'à des besoins très particuliers.


comment tu gères les ib_data entropique ?

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 12/02/2012 à 21:48

Les params SQL, je les change tout le temps, ca change rien

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 12/02/2012 à 21:53

Salemioche a dit :
Bool a dit :
MyISAM est une plaie à réserver qu'à des besoins très particuliers.


comment tu gères les ib_data entropique ?


Via innodb_file_per_table, et pour les workloads générant une fragmentation monstre (j'en ai qu'un comme ça, mon serveur de monitoring !), et bien je lance un "optimize table" dès que j'arrive à une certaine quantité d'espace perdu.

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

devtribu | Olivier
Modérateur

Photo de devtribu

Inscrit le : 16/06/2005

# Le 12/02/2012 à 22:26

krucial a dit :
Les params SQL, je les change tout le temps, ca change rien


Ca peut etre aussi des attaques ou des bots
Y en a vraiment beaucoup en ce moment

Février 2019, mon futur livre Tout JavaScript chez Dunod https://amzn.to/2PoLd0fOuvrir dans une nouvelle fenetre

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 13/02/2012 à 10:19

J'ai tout passé en innodb. Verdict ce soir

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

devtribu | Olivier
Modérateur

Photo de devtribu

Inscrit le : 16/06/2005

# Le 13/02/2012 à 14:54

Ca donne quoi pour le moment JC ?

Février 2019, mon futur livre Tout JavaScript chez Dunod https://amzn.to/2PoLd0fOuvrir dans une nouvelle fenetre

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 13/02/2012 à 15:52

Pour le moment, c'est magnifique. Alors qu'il arrivait que plusieurs requêtes s'entassent en attendant le lock et que j'arrive a un chiffre assez important de connexions simultanées, depuis le passage en innodb, je plafonne a 10 connexions simultanées :
http://i.kru.fr/04f3921dd8b0c8.pngOuvrir dans une nouvelle fenetre

Par contre, le serveur travaille beaucoup plus, le load average a fortement augmenté :
http://i.kru.fr/04f39227942153.pngOuvrir dans une nouvelle fenetre

Aujourd'hui est une grosse journée, 900 VU en permanence depuis ce matin. Ca se passe très bien, je suis content.

Du coup, j'ai remarqué que certains pages assez gourmandes (genre la page d'accueil loggué qui résume ce que tu as pu rater sur le site depuis ta derniere connexion) est beaucoup plus rapide à charger, du simple au triple.

Pour le moment, je suis satisfait du passage a innodb. De plus, la migration a finalement été assez rapide. Une table de 125 000 000 d'entrées a été transformée en 20 minutes.

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

devtribu | Olivier
Modérateur

Photo de devtribu

Inscrit le : 16/06/2005

# Le 13/02/2012 à 16:09

J'avais remarqué aussi que le innodb etait pas tres bon pour le load average

Par contre 10 connexions simultanés c'est beaucoup
J'en ai pratiquement jamais plus de 3 (meme avec plus de 1000 connectés comme en ce moment)

Reste à optimiser chaque requete maintenant...

Février 2019, mon futur livre Tout JavaScript chez Dunod https://amzn.to/2PoLd0fOuvrir dans une nouvelle fenetre

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 13/02/2012 à 16:15

Voila. J'ai un probleme avec ma table de photos. Ca represente pas un trafic "enorme" (moins que le forum en tout cas) mais ca fait partie des requetes le plus souvent en queue. Je vais analyser tout ça prochainement.

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

devtribu | Olivier
Modérateur

Photo de devtribu

Inscrit le : 16/06/2005

# Le 13/02/2012 à 16:21

Surement une histoire d'index
La commande EXPLAIN est vraiment pratique pour trouver des idées

Février 2019, mon futur livre Tout JavaScript chez Dunod https://amzn.to/2PoLd0fOuvrir dans une nouvelle fenetre

caaptusss | Jérémy
Membre

Photo de caaptusss

Inscrit le : 25/09/2007

# Le 13/02/2012 à 18:03

krucial a dit :
Voila. J'ai un probleme avec ma table de photos. Ca represente pas un trafic "enorme" (moins que le forum en tout cas) mais ca fait partie des requetes le plus souvent en queue. Je vais analyser tout ça prochainement.

T'a mis en place un backup ?

FirstHeberg.comOuvrir dans une nouvelle fenetre

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 13/02/2012 à 18:16

caaptusss a dit : T'a mis en place un backup ?


ça m'étonnerait, c'est has-been les backups, plus personne n'en fait.

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 13/02/2012 à 18:45

Heureusement oui que je fais un backup.

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

caaptusss | Jérémy
Membre

Photo de caaptusss

Inscrit le : 25/09/2007

# Le 13/02/2012 à 18:45

Je pose la question car si tu savais ce que j'ai déjà pu voir ...

FirstHeberg.comOuvrir dans une nouvelle fenetre

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 14/02/2012 à 10:01

Par contre, mon load average a mangé grave

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 14/02/2012 à 10:10

Installe maatkit si ce n'est pas fait, et donne nous le résultat de :

zcat /var/log/mysql/mysql-slow.log.1.gz | mk-query-digest


Et si le résultat est trop volumineux, limite toi aux 5 premières requêtes par exemple.

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 14/02/2012 à 11:29

La premiere query, c'est celle de la recherche phpbb. C'est une daube, mais appelée rarement.

Apres, j'ai ça :

# Query 2: 1.19 QPS, 0.19x concurrency, ID 0x4183EFC6EDC6B1C9 at byte 147070640
# This item is included in the report because it matches --limit.
# pct total min max avg 95% stddev median
# Count 15 77871
# Exec time 8 12485s 100ms 820ms 160ms 253ms 52ms 148ms
# Lock time 3 4s 26us 50ms 51us 76us 271us 40us
# Rows sent 2 34.81M 45 1.51k 468.78 1.33k 297.25 346.17
# Rows exam 0 34.81M 45 1.51k 468.78 1.33k 297.25 346.17
# Users 1 construire
# Hosts 1
# Databases 1 construire
# Time range 2012-02-13 06:25:18 to 2012-02-14 00:35:11
# bytes 8 13.06M 109 180 175.84 174.84 10.44 174.84
# Query_time distribution
# 1us
# 10us
# 100us
# 1ms
# 10ms
# 100ms ################################################################
# 1s
# 10s+
# Tables
# SHOW TABLE STATUS FROM `construire` LIKE 'photo'\G
# SHOW CREATE TABLE `construire`.`photo`\G
# EXPLAIN
/* /photos/viewer-pid_418407,pj_11107.php */ SELECT a.id

FROM photo as a

WHERE a.etat='3' AND a.projet_id='11107'\G

Si je fais un explain :

http://i.kru.fr/04f3a37489b7e9.pngOuvrir dans une nouvelle fenetre

La table photo contient 363 000 entrées.

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

devtribu | Olivier
Modérateur

Photo de devtribu

Inscrit le : 16/06/2005

# Le 14/02/2012 à 11:32

Il te manque un index sur projet_id non ?

Février 2019, mon futur livre Tout JavaScript chez Dunod https://amzn.to/2PoLd0fOuvrir dans une nouvelle fenetre

tonguide | Jeremy
Modérateur

 

Inscrit le : 09/05/2005

# Le 14/02/2012 à 11:39

SELECT id
FROM photo
WHERE projet_id=11107 AND etat=3

et met un INDEX double sur projet_id / etat

Tu peux essayer aussi en ignorant l'INDEX sur etat (IGNORE INDEX (etat)), j'ai remarqué que les etat/valide/enable est champ du genre (qui sont des petits chiffres, rarement plus de 2/3 valeurs différentes) n'étaient pas toujours à mettre en INDEX.

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 14/02/2012 à 12:39

Ok, je vais regarder tout ca, je comprends le principe.

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

Répondre

Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.

© MHN - Tous droits réservés | CNIL N°844440 | 23/11/2024 18:04:28 | Généré en 5.32ms | Contacts | Mentions légales |