Mysql
 sql >> Base de données >  >> RDS >> Mysql

Mysql limite les performances

le problème avec une table avec 1 mill records ne sera pas le AND id > 34000 LIMIT 10 ou LIMIT 34000, 10 cela dépendra de la structure et du reste de la requête. C'est-à-dire que vous avez besoin d'index, PK, FK pour accélérer la requête, à côté de cela, un Order by la ralentira probablement, faites une recherche like '%text%' cela rendra votre requête LENTE. Cela dépend également du moteur de la table

Ne vous attendez donc pas à ce que la modification de la limite 10 fasse une énorme différence. Il existe quelques outils qui vous aideront à déterminer une "meilleure" requête, mais toutes les requêtes ne fonctionnent pas de la même manière, alors ne vous attendez pas à la "meilleure solution" car elle n'existe pas.

Vous pouvez utiliser Afficher create table ou Describe select ...... ou explain pour voir ce qui se passe, ou utilisez la commande benchmark pour voir le temps approximatif d'une fonction que vous appliquez pour l'améliorer

MODIFIER :

Quelques outils pour MySQLJe vous recommande de jeter un œil à ce programme qui vous aidera dans cette partie des performances.

  • Mysqlslap (c'est comme un benchmark mais vous pouvez personnaliser davantage le résultat).
  • SysBench (test des performances du processeur, des performances d'E/S, des conflits de mutex, de la vitesse de la mémoire, des performances de la base de données).
  • Mysqltuner (avec cela, vous pouvez analyser les statistiques générales, les statistiques du moteur de stockage, les mesures de performance).
  • mk-query-profiler (effectuer une analyse d'une instruction SQL).
  • mysqldumpslow (il est bon de savoir que les requêtes de sorcière causent des problèmes).