imはCodeIgniterとDatatables.netを使用してレポートを生成しようとしています。MySQLのサブクエリが遅い
私は閉鎖された仕事(その人事制度)の量を試しています。私はすべてのジョブを照会するために使用し、PHPではforeachを行い、次にcalcを実行します。
私は、Datatablesのすべての機能(特にソート)を使用したいので、imはmySQLですべての計算を実行しようとしています。
問題は次のとおりです。2番目のサブクエリは非常に非常に遅いです。
SELECT
jobs.jobs_id, clients.nome_fantasia, concat_ws(' ', user_profiles.first_name, user_profiles.last_name) as fullname,
jobs.titulo_vaga, jobs.qtd_vagas, company.name as nome_company, jobs_status.name as status_name, DATEDIFF(NOW(), jobs.data_abertura) as date_idade,
(select count(job_cv.jobs_id) from job_cv where job_cv.jobs_id = jobs.jobs_id) as qtd_int,
(select count(distinct job_cv.user_id) from job_cv_history join job_cv on job_cv.job_cv_id = job_cv_history.job_cv_id where job_cv_history.status = '11' and job_cv.jobs_id = jobs.jobs_id) as fechadas
FROM (jobs)
JOIN clients ON lients.clients_id=jobs.clients_idJOIN user_profiles ON jobs.consultor_id=user_profiles.user_id
JOIN jobs_status ON jobs.status=jobs_status.jobs_status_id
JOIN company ON jobs.company_id=company.company_id
LIMIT 50
誰かが私を助けることができますか?必要に応じてもっと情報を提供することができます。
UPDATE
アイデアではない、道は「変数」のサブクエリ内で使用するためにそこに合格する最初のサブクエリではなく第二1で代わりにSELECT仕事をJOINを使用するには?現在のjobs_idのように?
UPDATE AGAIN
この行は、それ自体で正常に動作します。サブクエリの内部では、値が1分ほどかかります
SELECT job_cv.jobs_id,count(distinct job_cv.user_id) AS fechadas
FROM job_cv_history
JOIN job_cv
ON job_cv.job_cv_id = job_cv_history.job_cv_id
WHERE job_cv_history.status = '11'
GROUP BY job_cv.jobs_id
TKz ...私は仕事にこれを思いついた:http://pastebin.com/rzjAW7Sj firtsはqtdに参加するのはいいですが...第二の...私はfechadasの合計だけを取得します。各仕事のための合計.. any ideiasはどうですか? – Roberto