问题假设:
- 数据库无关
- 由于 X 和 Y 的值,两个查询都将只返回一行
问题:
哪个查询更快,更好的做法是什么?:
SELECT * FROM my_table WHERE X = 'some value' AND Y = 'other value';
或者
SELECT * FROM my_table WHERE X = 'some value';
基本上,将额外的不需要的参数传递到查询中对您有利还是不利(在性能方面),如果答案是“有利”,那么这是“好的”做法吗?
最佳答案
显然,具有更多参数的查询需要做更多的工作,但我认为在大多数情况下,您会发现差异是如此微不足道,以至于无法讨论。
最佳做法是以解决您的业务问题的方式编写查询,并让筹码落在可能的地方。如果您显然知道某个参数是多余的,那么就不要使用它,除非是为了简化您的代码。但是,由于数据的当前状态,我不会花大量时间去寻找参数冗余的情况。
关于数据库查询优化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4081645/