Query 中的执行顺序是什么,例如:
SELECT * FROM [users] WHERE [userid] = 50001 AND [username] = 'new user'
我的问题是首先匹配什么 - [userid] 或 [username]。
所以会影响执行时间。
任何改进此查询的建议都将被采纳。
最佳答案
答案取决于您为 SQL 引擎提供的索引。如 userid
已编入索引,但 username
不是,引擎很可能以userid
开头;如果 username
已编入索引,但 userid
不是,那么引擎可能会以名称开头;如果两个字段都被索引,引擎将搜索该索引,并通过内部 id 查找行。请注意,所有这些都高度依赖于您使用的 RDBMS。当行数较少时,一些引擎会完全放弃索引搜索,转而使用全表扫描。
关于WHERE 子句中的 SQL 查询执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8686289/