2010-10-12 3 views
0

Dans MySQL, je tape parfois "show innodb status" pour voir qu'une requête de longue durée fait quelque chose. Le bas a, sous "ROW OPERATIONS", une ligne:MySQL InnoDB: quelles sont les unités pour "reads/s"?

2000.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 2000.00 reads/s 

Quelles sont les unités pour ceux-ci? Records? Pages InnoDB? Les pages de disque OS? (Sont-ils la même chose?)

Répondre

1

Ceci est la ligne logique lit * moyenne sur tout ce que le sommet de SHOW INNODB STATUS indique pour lequel il exécute le rapport. Par conséquent, ce n'est pas la même chose que la section des pages (qui contient des opérations sur les pages physiques).

C'est une bonne métrique de performance à modéliser, car elle peut montrer les demandes générales sur votre base de données à partir de votre application. Si les demandes n'augmentent pas, mais que votre performance empire, vérifiez si votre jeu de données a augmenté, etc. Peut-être que cela cause plus d'entrées/sorties physiques? [*] Une ligne logique lue peut devoir lire encore plusieurs pages, par exemple si elle doit trouver une ancienne version (MVCC) à partir de l'annulation.

+0

Merci! Je pense qu'une chose qui m'intéresse est de savoir si je peux utiliser cela pour déterminer combien de temps va durer quelque chose. Supposons que je sache que mon programme va insérer 2.000.000 nouveaux enregistrements, et 'show innodb status' dit' 2000.00 inserts/s' (en moyenne) - cela suggère-t-il que cela prendra environ 2.000.000/2000 = 1000 secondes (17 minutes) total? S'il s'agit d'une «lecture logique de ligne», cela suggère qu'elle l'est, ce qui est bien. – Ken

+1

Je suppose que vous pourriez l'utiliser pour modéliser le progrès. Parce que la construction d'index uniques ne peut pas utiliser la note du tampon d'insertion, il peut y avoir un biais à partir duquel les pages d'index doivent effectuer des E/S physiques. Les tableaux deviennent également plus lents à insérer dans le plus grand qu'ils deviennent - donc juste parce que quelque chose est terminé à 50%, cela ne signifie pas que cela prendra autant de temps que cela a été le cas jusqu'à présent. –

Questions connexes