小编elb*_*ert的帖子

带有大 WHERE IN 子句的 SELECT 需要很长时间

我对这一切都很陌生,所以要温柔:)。

我有大型医疗数据库,我需要根据选定的医生为患者提取数据。

现在我建立了一个病人名单

SELECT patID 
FROM appointments 
WHERE docID IN ('docid1', 'docid2', ..... , 'docidn') 
Run Code Online (Sandbox Code Playgroud)

一旦我得到我的病人名单,我就会在从一大堆病人相关的表格中提取数据时使用它。

根据我最初的医生名单,我最终可以得到超过 20,000 名的患者名单。系统中的患者总数接近 1,000,000。

然后我拿我的病人名单开始从其他表中获取数据,或多或少是这样的

Select * 
FROM xrays 
WHERE patID IN ('patid1', 'patid2', 'paid3',....., 'patidn' ) 
Run Code Online (Sandbox Code Playgroud)

我根据第一部分中的列表构建了 patids 列表。

可以想象,对于 20,000 名患者列表,上述查询需要很长时间。

关于更好的方法的任何建议?

mysql performance select

5
推荐指数
1
解决办法
8712
查看次数

标签 统计

mysql ×1

performance ×1

select ×1