Что такое опасно большое число (или скорость увеличения) для Handler_read_rnd_next? - PullRequest
1 голос
/ 31 июля 2009

Это связано с запросами, которые я запускаю этот вопрос , а именно:

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

Я смотрел на phpMyAdmin, и у них есть одно значение, помеченное красным, Handler_read_rnd_next. Я думаю, что это имеет смысл; Учитывая приведенный выше запрос, если в местоположении есть несколько почтовых индексов, функции AVG () будут группироваться по городам / штатам, а затем сканировать каждый почтовый индекс.

Мой вопрос: когда это станет ужасной вещью? Должен ли я кешировать эти средние значения для начала или это увеличение на несколько тысяч Handler_read_rnd_next каждые несколько минут приемлемо для базы данных? Похоже, это число увеличится для любого запроса, использующего GROUP BY, поэтому мне интересно, является ли это просто стандартным тарифом.

Ответы [ 2 ]

1 голос
/ 08 июля 2010

Я знаю, что Роджера больше нет, но для всех, кто обеспокоен этим ...

phpMyAdmin сам увеличивает это значение на 300 к 1k при любом состоянии загрузке страницы.

Так что на самом деле не используйте только результаты phpMyAdmin.

0 голосов
/ 18 августа 2009

Высокие значения случайных статистических счетчиков не опасны. Если у вас нет проблем с производительностью, вам не нужно беспокоиться. Что касается кеширования:

  1. Не выполнять преждевременную оптимизацию. Если вы не знаете, что это станет узким местом (или уже есть), не оптимизируйте его. Кэширование данных вручную не является бесплатным; это заставляет ваше приложение тщательно синхронизировать кеш.

  2. Если места в основном доступны только для чтения, что, наверное, и есть, кеш запросов MySQL уже кеширует это для вас. Так как MySQL обеспечивает прозрачную синхронизацию, единственной ценой является память (что довольно дешево). Проверьте параметры кеша запросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...