Handler_read_rnd_next的危险数字(或增长率)是多少?

时间:2009-07-31 14:42:24

标签: sql mysql optimization

这与我从this question运行的查询有关,即:

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 个答案:

答案 0 :(得分:1)

我知道Roger已经不在了,但对于任何关心此事的人来说......

phpMyAdmin本身会在任何状态页面加载时将此值增加300到1k

所以不要仅仅通过phpMyAdmin结果。

答案 1 :(得分:0)

随机统计计数器的高值并不危险。如果您没有性能问题,则无需担心。就缓存而言:

  1. 不要执行过早优化。除非您知道这将成为瓶颈(或者已经存在),否则不要对其进行优化。手动缓存数据并不是免费的;它会让你的应用程序小心地保持缓存同步。

  2. 如果地方基本上是只读的,我猜它可能是,MySQL的查询缓存已经为你缓存了这个。由于MySQL透明地保持同步,因此唯一的成本是内存(这非常便宜)。检查查询缓存参数。