2009-07-31 2 views
1

Ceci est lié aux questions que je suis en cours d'exécution de this question, à savoir:Qu'est-ce qu'un nombre dangereusement élevé (ou taux d'augmentation) pour Handler_read_rnd_next?

SELECT CONCAT_WS(', ', city, state) AS location, AVG(latitude), AVG(longitude) 
FROM places 
WHERE state='NY' 
     AND city='New York' 
GROUP BY 
     state, city 

J'ai regardé phpMyAdmin et ils ont une valeur rouge battant pavillon, Handler_read_rnd_next. Je pense que c'est logique. Étant donné la requête ci-dessus, si un emplacement a plusieurs codes postaux, les fonctions AVG() vont se regrouper par ville/état, puis analyser chaque code postal.

Ma question est la suivante: quand est-ce que cela devient une chose terrible? Dois-je mettre ces moyennes en cache pour commencer, ou est-ce qu'une augmentation de quelques milliers de Handler_read_rnd_next toutes les quelques minutes est acceptable pour une base de données? Il semble que ce nombre augmentera pour toute requête qui utilise GROUP BY, donc je me demande s'il s'agit d'un tarif standard.

Répondre

0

Les valeurs élevées des compteurs statistiques aléatoires ne sont pas dangereuses. Si vous n'avez pas de problème de performance, vous n'avez pas besoin de vous inquiéter. En ce qui concerne la mise en cache:

  1. Ne pas effectuer une optimisation prématurée. À moins que vous sachiez que cela va devenir un goulot d'étranglement (ou c'est déjà le cas), ne l'optimisez pas. La mise en cache des données à la main n'est pas gratuite. cela oblige votre application à conserver soigneusement le cache en synchronisation.

  2. Si les emplacements sont essentiellement en lecture seule, ce que je suppose, le cache de requête de MySQL le mettra déjà en cache pour vous. Puisque MySQL maintient cette synchronisation de manière transparente, le seul coût est la mémoire (ce qui est assez bon marché). Vérifiez vos paramètres de cache de requête.

1

Je sais que Roger n'est pas plus autour mais pour quiconque se préoccupe de cette ...

phpMyAdmin lui-même incrémente cette valeur un bon 300 à 1k sur tout Statut chargement de la page.

Ne vous fiez donc pas vraiment aux résultats de phpMyAdmin seulement.

Questions connexes