Mysql里SQL调优公式及案例

1 Comment2009年08月27日 作者: 大头刚 

SQL调优公式T=S/V (此公式来源于互联网,本文只是引用)

S指sql所需处理的资源总量,V指sql单位时间所能处理的资源量,T自然就是SQL执行所需时间了。

这个公式很简单,调优的目标是减少T,T=S/V,很简单的数学题,要减小值,那就只能是减小分子,或者是增大分母了。那么调整的对象自然就要放到这里的S和V上,所以调优的方法就是围绕减少S和增大V。

增大V,在硬件设备不变、参数不变的情况下,能控制的似乎不太多?
减少S(sql所需访问的资源总量),这通常是调优工作的重中之重,SQL调优的主要目的就是围绕着如何减少S在进行。在Mysql里,我觉得就是减少rows值,一条SQL执行所读写的rows数直接影响到SQL的执行时间。

下面举一个我在调优mysql查询的例子,需求是需要查出被点击数最大的16篇文章记录,sql如下:

mysql> select uid from test where status=1 order by today_hit desc limit 16;
+———-+
| uid |
+———-+
| 22380047 |
| 6264708 |
| 17318093 |
| 3412287 |
| 21542034 |
| 21542034 |
| 16929428 |
| 16929428 |
| 11994313 |
| 12234372 |
| 21938539 [...]