Dans la littérature, l'efficacité des requêtes SQL est souvent mesurée en "requêtes avant seconde" (QPS). Comment ces mesures sont-elles prises, étant donné que j'ai une base de données avec les données de production à portée de main? Existe-t-il un outil MySQL qui peut le faire?
# mysqladmin status
Uptime: 587 Threads: 121 Questions: 3456 Slow queries: 0 Opens: 152 Flush tables: 1 Open tables: 64 Queries per second avg: 5.888
La façon la plus simple de procéder consiste à créer un travail qui s'exécute:
SHOW STATUS
à des intervalles spécifiés. Cela renverra la valeur "requêtes". Faites la différence entre les appels successifs à SHOW STATUS, puis divisez par le nombre de secondes entre les mesures pour obtenir les requêtes par seconde.
Si vous êtes sous Linux, vous pouvez utiliser un outil appelé MyTop pour des analyses en temps réel.
Jouer avec # service mysql status retourne ces informations (basées sur le binaire mysqladmin):
root@SERVER:~# service mysql status
[info] /usr/bin/mysqladmin Ver 8.42 Distrib 5.5.44, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Server version 5.5.44-0+deb7u1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 1 day 6 hours 36 min 1 sec
Threads: 2 Questions: 332928 Slow queries: 0 Opens: 104 Flush tables: 1 Open tables: 59 Queries per second avg: 3.022.