在mysql中快速获取记录数的方法
我正在mysql中编写一个连接两个表的查询。两个表都有超过50000条记录 表格EMP列 恩皮德 项目, 代码 地位 表格EMPINFO 恩皮德 项目, 代码 项目类型 花费的时间 技巧 每个表中都有候选键[empid、project、code] 因此,当我使用内部联接来联接表时在mysql中快速获取记录数的方法,mysql,sql,query-optimization,inner-join,query-tuning,Mysql,Sql,Query Optimization,Inner Join,Query Tuning,我正在mysql中编写一个连接两个表的查询。两个表都有超过50000条记录 表格EMP列 恩皮德 项目, 代码 地位 表格EMPINFO 恩皮德 项目, 代码 项目类型 花费的时间 技巧 每个表中都有候选键[empid、project、code] 因此,当我使用内部联接来联接表时 like this INNER JOIN ON a.empid = b.empid and a.project = b.project and a.code = b.code 我得到了结果,但如果我在外部查询中添
like this INNER JOIN
ON a.empid = b.empid
and a.project = b.project
and a.code = b.code
我得到了结果,但如果我在外部查询中添加count(*)来计算记录数,则连接失败会花费很多时间
有没有办法加快速度以获取记录数
我希望听到更多关于加速内部联接查询以及在两个表中使用相同候选键的建议
INDEX(empid, project, code) -- in any order.
这些桌子是1:1吗?如果是这样,为什么要加入以进行计数
请提供SHOW CREATE TABLE
。(如果存在数据类型差异,这可能是一个大问题。)
请提供实际的选择
你有多少公羊?请提供显示变量,如“%buffer%”代码>请显示完整的查询和表定义。要加入的字段是否有索引?请尝试使用解释:在哪里使用此计数?UI中的大多数记录集对象都有一个作为记录集对象的一部分自动返回的记录计数。我想我是在问你是否需要数据库或UI中的计数。我已经在两个表中的超级键上创建了一个索引。现在它运行良好。