|
|
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附近流行的引擎)则不会。 所以,毫无疑问,你最喜欢的答案将取决于你真正关心的引擎(这让我回到了十多年前,当时我的职责包括管理维护一个组件的团队,该组件本应在六个不同的引擎上提供性能良好的查询——谈论噩梦般的工作……!-)。 |
|
|
key Austin HLYO · 显示在编辑页面上选中的复选框 7 年前 |
|
|
kash101 · Laravel 5.6显示期间多对多关系引发错误 7 年前 |
|
|
dryhay · MySQL“多对多”关系错误 7 年前 |
|
|
denoise · 显示独立于where子句的所有联接结果 7 年前 |
|
|
L-R · 在hibernate中从多对多表检索数据 7 年前 |
|
|
Josh_GAA · MS Access多对多关系 7 年前 |
|
no one special · MySQL多对多最优索引 7 年前 |