2010-03-11 8 views
0

Notre DB a de très mauvaises performances d'insertion et de mise à jour. La plupart des grandes tables prennent 2-3 secondes par insertion. Si nous reconstruisons la table, le temps passe à 0,02-0,03 ce qui signifie environ 40 insertions par seconde. Même cela est assez bas, et nous ne pouvons pas nous permettre de reconstruire des tables de temps en temps. C'est un processus qui prend du temps et verrouille la table pour la durée. Si nous regroupons des insertions dans la transaction, les performances augmentent. Mais dans notre application, nous avons l'obligation de commettre l'insertion immédiatement. Quelqu'un peut-il suggérer ce qui peut être fait pour améliorer les performances de l'insert.performance d'insertion mysql

Voici le mysqlreport du serveur s'il indique quelque chose: Une chose remarquable est que Com_rollback est très élevé sur notre serveur. Qu'est-ce que cela peut signifier?

MySQL 5.0.51a-3ubuntu5. uptime 2 22:23:11 Thu Mar 11 09:13:33 2010

__ Key _________________________________________________________________

tampon utilisé 70.03M de 3,00 g% d'occasion: 2,28
actuelle 552.19M% Utilisation: 17,97
Ecrire a frappé 78,74%
Lire atteint 99,63%

__ questions ___________________________________________________________

total 803.30M 3.2 k/s
com_ 606.44M 2.4k/s% Total: 75,49
QC Clics 130.15M 513,7/16,20 de
DMS 47.99M 189,4/s 5,97
+ Unknown 18.69M 73,7/s 2,33
COM_QUIT 32.23k 0,1/s 0.00
lent (10) 3.24k 0.0/s 0.00% DMS: 0,01 Log: ON DMS 47.99M 189,4/s 5,97
SELECT 40.94M 161,6/s 5,10 85,30
INSERT de 3.92m 15,5/s 0.49 8.16
MISE À JOUR 2.85M 11.2/s 0.35 5.93
SUPPRIMER 29 1.57k 1,2/s 0,04 0,61
REMPLACER 0 0/s 0,00 0,00
com_ 606.44M 2.4k/s 75,49
Set_Option 467.34M 1.8k/s 58,18
rollback 126.23M 498,2/s 15,71
commettre 11.44M 45,2/1,42 s

__ sélection et de tri _____________________________________________________

balayage 85.20k 0,3/s% SELECT: 0,21
Gamme 1,91 7,5/4,67 s
Ful l jointure 126 0,0/s 0,00
contrôle les plages 0 0/0.00
rng complète jointure 0 0/s 0,00
scan Trier 914 0,0/s
Trier gamme 191.09k 0,8/s
Trier passer MRG 0 0/s

__ cache de requêtes _________________________________________________________

utilisation de la mémoire 190.04M de 1.00g% d'occasion: 18.56
Bloquer Fragmnt 24,36%
Coups 130.15M 513,7/s
Inserts 12.10M 47,8/s
Insrt: Prune 12.10M: 1 47,8/s
de Hit: Insert 10,75: 1

__ Tableau Locks _________________________________________________________

52.96k 0,2 A attendu/s% total: 0,08
immédiate 63.16M 249,3/s

__ Tables ______________________________________________________________

ouverte 64 de 64% du cache: 100,00
ouvert 1,07 m/s 4,2

__ Connexions _________________________________________________________

Max 396 utilisé de 500% Max: 79,20
totale 49.06k 0,2/s

__ Créé Temp ________________________________________________________

disque de table 5.27k 0.0/de
de tableau 47.47k 0,2/s Taille: 200.0M
Fichier 27 0.0/de

__ Discussions _____________________________________________________________

Exécution 18 245
mises en cache 0 sur 4 Hit%: 39,82
Crée 29.53k 0,1/s
lent 0 0/s

__ Aborted _____________________________________________________________

Clients 33.67k 0,1/s
connecte 13 0,0/s

__ octets envoyés _______________________________________________________________ 227.04G 896.0k/s
Reçu 106.15G 418.9k/s

__ Pool de tampons InnoDB __________________________________________________

Utilisation De 4,00 g% 4,00 g d'occasion: 100,00
Lire atteint 99,96%
Pages
Gratuit 0% Total: 0,00
données 251.34k 95,88% Drty: 0,86
Divers 10807 4,12
Maintenue 2 0,00
Reads 13,04 G 51.4k/s
partir du fichier 5.02M 19,8/s 0,04 Ahead Rnd 133920 0,5/s Ahead Sql 246973 1,0/s Ecrit 968.37M 3.8k/s Flushes 19.42M 76.6/s Attendre Gratuit 0 0/s

__ InnoDB verrouillage _________________________________________________________

Waits 1540 0.0/s actuel 0 Temps acquisition total 1239283 ms moyenne 804 ms Max 51521 ms

__ InnoDB Données, Pages, Rangées ____________________________________________

Données Lit 6,86M 27 .1/s Rédige 21.30M 84,1/ de fsync 13.42M 53,0/de En attente Reads 1 0 Rédige fsync 1

Pages Créé 2.34m 9,2/s Lire 23.39M 92,3/s écrit 19.42M 76,6/s

lignes Supprimé 291.57k 1.2/s Inséré 138.07M 544,9/s Lire 7.21G 28.5k/s Mise à jour 2,78 m 11.0/s

Répondre

0

Vérifiez les paramètres DISC IO. Vous avez peut-être surchargé votre sous-système de disque - ce qui signifiait obtenir plus de disques, un contrôleur RAID, etc ...

J'ai vu sur Windows/SQL Server un problème de mauvaise performance d'insertion, et la mesure montrait que le temps de réponse moyen du disque était de 1,2. SECONDS - tellement surchargé était le disque. Cela devrait être dans la zone de 2 millièmes de seconde - comme 15ms ou.

0

Com_rollback signifie «annuler des validations» je suppose. Cela signifie que vous avez de nombreux échecs de transaction.

Généralement, je soupçonne que vous faites quelque chose hors de l'ordinaire avec vos clés, en particulier votre clé primaire (vous en avez un, non?). Comment sont définies vos clés? Changez-vous les colonnes sur lesquelles les touches fréquemment? Si vos commandes INSERT et UPDATE sont beaucoup plus rapides après la reconstruction de la table, il semble que votre clé primaire, sur laquelle MySQL commande et stocke les lignes de votre table, change. Mettre votre définition de table ici devrait aider (DESCRIBE your_table_name ou SHOW CREATE TABLE your_table_name fera l'affaire - je suis parti pour le dernier format).