数据库性能 - 左外连接数据库功能

时间:2014-10-10 16:24:11

标签: database

这是一个有点复杂的查询,它有多个连接并重新运行许多带有多个数据字段的记录。假设它主要用于检索经理详细信息。

第一组表格(已实施查询):

选择m.name,d.name,d.address,m.salary,m.age,...... 从经理m,部门d,...... ..等等 加入...... ..

假设,一个经理可以拥有零个或多个员工。

假设我需要列出每个经理的所有员工姓名,以获得第一组表的结果,其中包含没有员工的经理(这意味着要保留第一组表的经理列表)。 然后我必须通过“派对”表访问“员工”表(可能涉及更多表)。

第二组表格(要重新连接):

这意味着有一个或多个加入“员工”,“派对”和......等等 我有两种方法。

  1. 将第一组表格的左外连接设为第二组 表。
  2. 在第二组数据库级别创建用户定义函数(UDF) 表。然后我必须将manger id作为一个插入到这个UDF中 参数并将所有员工(e1,e2,...)作为格式化字符串 通过调用第一组表中的select子句
  3. 在这两个选项中,有人可以建议我使用DB性能的最佳解决方案吗?

1 个答案:

答案 0 :(得分:0)

使用适当的WHERE子句和索引转到JOIN。

数据库引擎在优化您的优势方面要好得多。让它发挥作用。

你的方式听起来像(n + 1)查询死亡。

编写示例查询并向数据库询问EXPLAIN PLAN以查看成本是多少。如果你发现了一个TABLE

相关问题