如何迭代优化MySQL查询?

sha*_*nus 6 mysql caching query-optimization

我正在尝试迭代地优化缓慢的MySQL查询,这意味着我运行查询,获取时间,调整它,重新运行它,获取时间等等.问题是时间是非静止的,后来执行的查询与早期执行的执行方式非常不同.

我知道在执行之间清除查询缓存或关闭它.我也知道,在某种程度上,操作系统会以MySQL无法控制或理解的方式影响查询性能.但总的来说,我能做的最好的是这种迭代查询优化,这样我可以比较苹果和苹果吗?

Cha*_*les 2

查询优化的最佳工具是EXPLAIN. 需要花一些时间来了解输出的含义,但这样做之后,您将了解 MySQL 的(可怕的、损坏的、向后的)查询规划器如何决定最好地检索所请求的数据。

查询参数的更改可能会导致截然不同的查询计划,因此这可能会导致您遇到的一些问题。

您可能需要考虑使用慢查询日志来捕获可能以低性能运行的所有查询。也许您会发现所讨论的查询仅在使用某些参数时才属于低性能类别?