假设我有一个这样的 MySQL 查询,表PEOPLE
有大约 200 万行:
SELECT * FROM `PEOPLE` WHERE `SEX`=1 AND `AGE`=28;
第一个条件将返回 100 万行,第二个条件可能返回 20,000 行。在本地网站上,大多数开发人员表示,更改它们的顺序会产生更好的效果。他们还说2 million + 1 million + *10,000*
如果更改顺序会导致 I/O 时间,而上面的原始查询会导致2 million + 20,000 + *10,000*
I/O 时间。听起来很有道理。
众所周知,MySQL 有一个用于此类工作的内部查询优化器。订单是否需要特别注意以获得最佳性能?我完全糊涂了。
PS:我注意到已经有一些类似的问题被问过,但它们是两年前还是树,最好再问一次。
谢谢大家注意到这个问题。这是关于我为什么再次问的解释:
在我问这个问题之前,我运行了几次 EXPLAIN。答案是顺序无关紧要。但是面试官告诉我订单会影响性能,我想确定是否有我遗漏的东西。