如何优化sql数据库中两个表的100万个条目的排序和连接?

这些表是employee和employee_info

员工包含:

> emp_id
> emp_name
>列表项目

employee_name包含:

> emp_address
> emp_id
> emp_telephone
>列表项目

这两个表都包含大约100万个条目.

加入和排序这些表的最快方法是什么?

有没有可以与sql一起使用的技术?

最佳答案

What is the FASTEST way to join and sort these tables?

如果你按emp_id排序……

通过emp_id索引两个表.这将允许合并连接,这是迄今为止最快的连接.

对于employee_name,请确保您的索引涵盖了所需的所有列.否则,您必须为基础表支付昂贵的查找连接费用.

CREATE INDEX IX_employee_name_By_Id ON employee_name (emp_id) INCLUDE (emp_address, emp_telephone)

如果要按其他列排序

现在变得艰难.上面的指数方案可能有效.或者您可能会发现,通过索引一个表的排序列,另一个表上的连接列可能更快.

再次,确保您的两个索引都涵盖了您关注的所有字段.

Is there a technology that can be used apart from sql?

是的,但我无法想象为什么你会愿意接受性能上的提升,更不用说增加的复杂性了.

请记住,SQL不是“真正的代码”.它更像是一个DSL,可以说明你想要发生什么而不说明它应该如何发生.您的数据库根据许多因素确定要使用的实际算法,例如表大小,索引,值分布(即统计信息)等.作为程序员,您通常没有选择比数据库更好的解决方案所需的信息想出来了.

更多信息:http://use-the-index-luke.com/

转载注明原文:如何优化sql数据库中两个表的100万个条目的排序和连接? - 代码日志