我的公司已经为我分配了提高数据库性能的工作。 早期的开发人员编写了一个包含5个内连接的查询。
在不损害性能的情况下可以使用的内部连接数是多少?
答案 0 :(得分:7)
在特定情况下,JOIN可以比替代品更好地执行。并且在标准化数据库中看到许多连接并不罕见。
并非总是需要JOIN - 如果表格的JOIN之外没有引用,EXISTS
或IN
将表现更好。例如:
SELECT a.column
FROM TABLE_A a
JOIN TABLE_B b ON b.col = a.col
... VS:
SELECT a.column
FROM TABLE_A a
WHERE EXISTS(SELECT NULL
FROM TABLE_B b
WHERE b.col = a.col)
如果结果集需要连接,则评估情况:
是否需要JOIN功能的任何连接条件都可以使用。 IE:
JOIN table x ON DATE(x.col) = y.column
...因为这种情况会在x.col
无用的
将数据非规范化可能是一种性能优势是合理的,但这是经过大量审核后最后考虑的选择。测试