目前我在 sp 中使用了很多内部联接(大约 7 个),这对 sp 性能有任何影响吗?左外连接是否比内连接提供更好的性能。
还有一件事,如果我连接两个表 a 和 b,其中列 id 和 id1 都不可为空。我想在这里我可以进行内部联接,因为这些列已索引。
最佳答案
外连接比内连接更昂贵。我要说的话可能会引起很多人的争议。如果你正确调整数据库并且不做任何愚蠢的事情,并且如果你使用的是专业的 RDBMS,那么 7 个内连接应该不是问题。
数据库调整是什么意思?数据库调整有很多内容,但最明显的检查是确保始终连接已索引的列。
我说的愚蠢是什么意思?不要在连接条件中使用 OR 运算符。尝试将连接保持在单个比较上,例如一个表中的外键等于另一个表中的主键。尝试将所有关键字段都输入为整数。
如果您确实遇到性能问题,请务必研究有问题的查询的执行计划。例如,当连接非常大的表时,您可能会遇到问题,大到甚至索引扫描都太慢。您可能必须进行非规范化并提供额外的过滤以减少扫描时间。不要试图预测这一点。反规范化最好是在遇到现实世界的性能情况之后才进行。
关于sql - Inner Join 是否存在性能问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1157578/