|
|
1
14
我假设你想找到那些在 任何 关于部门,这是一个容易得多的查询。
我将抢先提出使用聚合的不可避免的建议:
抵制这种诱惑。它是 显著地 更慢的。类似的情况出现在 SQL Statement - âJoinâ Vs âGroup By and Havingâ 而第二个版本,在那一刻,大约是 慢二十倍 . 我还建议你看看 Database Development Mistakes Made by AppDevelopers . |
|
|
2
3
编辑:我在另一个关于性能问题的答案中看到了一个注释——我在SQLite和PostgreSQL中尝试过这种方法,使用了适当的索引,看起来它的性能很好,并且正确使用了所有这些索引;在MySQL 5.0中,我不得不承认性能没有那么好。 我怀疑(没有机会在无数其他引擎上进行基准测试;-)其他真正优秀的SQL引擎(如SQL Server 2008、Oracle、IBM DB2、新的开源Ingres……)也会很好地优化这个查询,而其他平庸的引擎(想不出任何一个在MySQL附近流行的引擎)则不会。 所以,毫无疑问,你最喜欢的答案将取决于你真正关心的引擎(这让我回到了十多年前,当时我的职责包括管理维护一个组件的团队,该组件本应在六个不同的引擎上提供性能良好的查询——谈论噩梦般的工作……!-)。 |
|
|
Johnny T · 基于当前值的SQL合并表[重复] 1 年前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
ojek · 如何对SQL结果进行分组和编号? 1 年前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 1 年前 |
|
|
Sax · 规范化Google表格(第一步) 1 年前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |