0

我正在 mysql 中编写一个查询来连接两个表。并且这两个表都有超过 50,000 条记录。

表 EMP 列 empid,

项目,

代码,

地位

表 EMPINFO

空虚,

项目,

代码,

项目类型,

所花费的时间,

技能

在每个表中都有候选键 [empid, project, code]

所以当我使用 INNER join 加入表时

like this INNER JOIN 
ON a.empid = b.empid 
and a.project = b.project
and a.code = b.code

我得到了结果,但是如果我在外部查询中添加 count(*) 来计算记录数,那么连接失败会花费很多时间。

有什么方法可以加快获取记录的数量吗?

我想听听更多关于加快内部连接查询以及在两个表中具有相同候选键的建议。

4

1 回答 1

0
INDEX(empid, project, code) -- in any order.

这些表是 1:1 的吗?如果是这样,为什么要JOIN才能做COUNT?

请提供SHOW CREATE TABLE。(如果存在数据类型差异,这可能是一个大问题。)

请提供实际SELECT

你有多少内存?请提供SHOW VARIABLES LIKE '%buffer%';

于 2015-12-28T22:03:06.390 回答