当我们拿到一条段要优化的Query时,第一件事情是什么?是反问自己这条Query有什么问题?我为什么要优化他,只有明白了这些问题,才能知道须要做什么,才能够找到问题的关键.
不能只是觉得某个Query好像有点慢,须要优化一下,然后就开始一个一个优化方法去轮番尝试.这样很可能会消耗大量的人力和时间成本,甚至可能到最后清寒是得不到一个好的优化福建省,这就像看病一样,医生必须要清楚病的根源才能对症下药,如果只是知道什么地方不舒服,然后就开始通过各种药物尝试治疗,那后果可能就非常严重了.
所以,在拿到一条须要优化的Query之后,首先要判断出这个Query的瓶颈到底是IO还是CPU,到底是因为在数据访问上消耗了太多的时间,还是在数据的去处方面花费了太多资源.
一般来说,在MySQL5.0系列版中,可以通过系统自带的PROFILING功能清楚地找出一个Query的瓶颈.当然,如果读者朋友为了使用MySQL的某些5.1版本中才有的新特性.抑或是早早使用MySQL5.1的预发布版本,可能就没办法使用这个功能了,因为这个功能是MySQL5.1系统最补版本中并不支持,不过现在兴奋的是这个功能在最新的5.1后面的版本又已经提供了.