我在mysql中编写一个查询来连接两个表。这两个表都有超过50,000条记录。
表格EMP列 empid,
项目,
代码,
状态
表格EMPINFO
empid,
项目,
代码,
项目类型,
timespent,
技能
在每个表中都有候选键[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(*)来计算记录数,那么连接失败会花费很多时间。
有没有办法加快获取记录数量?
我想听到更多关于加速内部联接查询的建议,以及在两个表中都有相同的候选键。
答案 0 :(得分:0)
INDEX(empid, project, code) -- in any order.
这些表是1:1吗?如果是这样,为什么JOIN要做COUNT?
请提供SHOW CREATE TABLE
。 (如果存在数据类型差异,这可能是一个大问题。)
请提供实际的SELECT
。
你有多少内存?请提供SHOW VARIABLES LIKE '%buffer%';
。