我很难理解为什么生产机器执行来自PHPMYADMIN的查询比本地机器慢。
我运行to get the number of job each skill has的查询
SELECT jrs.skill_id, COUNT(jrs.job_id)
FROM
(
SELECT id
FROM job
WHERE active_to > NOW()
) as active_job
JOIN job_req_skill jrs
WHERE jrt.job_id = active_job.id
GROUP BY skill_id该数据库在生产和本地机器上都是完全相同的,并且没有占用mysql资源的生产服务器上的大量流量。
本地服务器( Win 7 Win AMPPS,mysql 14.14远端5.6.14 for win32 (x86),PhpMyAdmin v3.5.8.2)
生产服务器(Ubuntu12.04LTS,mysql 14.14远端5.5.35,用于debian gnu,PhpMyAdmin v3.4.10.1)
为什么表现有这么大的差别?
谢谢
发布于 2014-08-22 23:03:11
您在生产中运行的是MySQL版本5.5,本地版本为5.6。它们明显地改进了5.6中的查询优化。注意EXPLAIN输出中的不同之处。
试试这个:
SELECT jrs.skill_id, COUNT(*)
FROM job
JOIN job_request_skill AS jrs ON jrs.job_id = job.id
WHERE job.active_to > NOW()
GROUP BY jrs.skill_id直接引用表,而不是在子查询中引用,可能会避免构造临时表。通常应该使用COUNT(*)而不是COUNT(column),除非您特别需要避免在列中计算空值;如果skill_id上有索引,那么它就可以使用它来获取计数。
发布于 2014-08-22 23:15:24
你要返回多少行?它可能在计算将结果从主机传输到您的工作站所需的时间。
https://stackoverflow.com/questions/25456654
复制相似问题