2011-09-13 4 views
0

Je ne sais pas pourquoi, mais le MYSQL donne une très grosse charge sur le processeur. Je dois mettre à jour la base de données plusieurs fois par seconde et la base d'utilisateurs est en croissance.MYSQL prend 100% du CPU. Lentes requêtes

Il était très bien au début, mais la charge du processeur augmente tous les jours et maintenant

Voici la requête lente du journal:

*Query_time: 4.182654 Lock_time: 0.000070 Rows_sent: 0 Rows_examined: 0 
SET timestamp=1315908025; 
UPDATE Stats SET Time = 1315908020 WHERE Domain = 'facebook.com';* 

pourquoi une telle requête si lent? Les requêtes lentes prennent-elles plus de temps processeur? Est-ce possible parce que j'ai choisi les mauvais types pour les lignes?

time: int (11), Domain VARCHAR (1000) 

La table de statistiques a 13k lignes et croît.

+1

Quel est le moteur de table et combien de fois par seconde la table est-elle accessible? –

+1

Veuillez indiquer le DDL de la table. –

+0

Les noms DNS sont limités à 253 caractères; vous pourriez économiser un peu d'espace là-bas. – MSalters

Répondre

2

La raison la plus courante pour les requêtes lentes est l'absence d'index. MySQL doit trouver la ligne WHERE Domain='facebook.com'. Est-ce une analyse de table ou une recherche d'index?

+0

Une analyse de table de 13 Ko devrait prendre une fraction de seconde à moins qu'elle ne soit scannée plusieurs centaines de fois par seconde ou plus. C'est probablement le manque d'index sur la colonne mentionnée, mais plus que cela, cela ressemble à une mauvaise configuration du moteur de stockage. –

+0

Je ne sais pas quelle est la différence entre l'analyse de table et la recherche d'index. – user775013

+0

Une analyse de table signifie essentiellement que MySQL doit regarder chaque enregistrement à son tour. Une recherche d'index signifie qu'il y a une liste ordonnée qui peut être recherchée dans un type de mode d'arbre binaire - beaucoup plus rapidement. – Jaydee