很抱歉有很多无用的文字。最后 3 段讲述了最重要的事情:D
最近我们在其中一台客户端服务器中遇到了一些 mysql 问题。一些出乎意料的事情开始了 mysql 进程的 CPU 飙升。这个问题导致我们发现和优化错误的查询,这是一个问题。
我在想优化正在加速查询(执行查询所需的总时间)。但是在针对它优化了几个查询之后,我的同事开始同事开始抱怨一些查询读取了太多行,所有行都来自表(如 EXPLAIN 所示)。
重写查询后,我注意到,如果我希望查询读取更少的行 - 查询速度会受到影响,如果我查询是为了速度 - 会读取更多的行。
这对我来说毫无意义:读取的行数更少,但执行时间更长
这让我想知道应该怎么做。当然,拥有读取最少行的快速查询将是完美的。但由于这对我来说似乎不可能,我正在寻找一些答案。我应该采取哪种方法 - 加快或减少读取行数?当查询速度很快但读取的行数更多,而当读取的行数减少而速度受到影响时,有什么优点和缺点?服务器在不同情况下会发生什么?
谷歌搜索后,我只能找到关于如何提高速度的文章和讨论,但都没有涵盖我之前提到的那些不同的案例。
当然,我期待着看到一些个人的选择。也欢迎可以指导我正确方式的链接。