小编jpb*_*ini的帖子

如何使用连接加速查询

我有几张桌子需要加入。我有一个员工表(约 40 万行)、一个公司表(约 1000 万行)和一个存储某人工作地点的员工公司表。

基本上,我需要让所有符合某些条件的员工(他们在拥有网站的公司工作,位于某个国家/地区等)。我进行了查询以获取此信息,但花费的时间太长。我需要加快速度。

SELECT  DISTINCT "employees".* 
FROM "employees" 
INNER JOIN "employee_companies" ON "employee_companies"."employee_id" = "employees"."id" 
INNER JOIN "companies" ON "companies"."id" = "employee_companies"."company_id" 
WHERE (employee_companies.employee_id IS NOT NULL)
AND (companies.website IS NOT NULL) 
AND (employees.country = 'Uruguay') 
ORDER BY employees.connections DESC
Run Code Online (Sandbox Code Playgroud)

这是该查询的计划:

Unique  (cost=877170.24..880752.72 rows=62304 width=1064) (actual time=24023.736..26001.876 rows=73318 loops=1)
  ->  Sort  (cost=877170.24..877326.00 rows=62304 width=1064) (actual time=24023.733..24305.989 rows=77579 loops=1)
        Sort Key: employees.connections DESC, employees.id, employees.name, employees.link, employees.role, employees.area, employees.profile_picture, employees.summary, employees.current_companies, employees.previous_companies, …
Run Code Online (Sandbox Code Playgroud)

postgresql performance join query-performance

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

join ×1

performance ×1

postgresql ×1

query-performance ×1