Stress testing the site, and it all breaks down, is obvious.
Today's problem: WSOD on several pages. After a few hours, I narrowed down the problem on one page to this request (I hope): it started in a second; now requires> 300.
SELECT jobs.posting_date ,
jobs.id ,
jobs.title ,
addresses.street ,
cities.name ,
states.abbr ,
details.target_url ,
details.description_extracted AS extraction,
COUNT(jobs_skills.skill_id) AS skills ,
users.first_name
FROM jobs
JOIN addresses
ON addresses.id = jobs.address_id
JOIN states
ON addresses.state_id = states.id
JOIN cities
ON addresses.city_id = cities.id
JOIN job_feed_details AS details
ON jobs.id = details.job_id
LEFT JOIN jobs_skills
ON jobs.id = jobs_skills.job_id
LEFT JOIN users
ON users.id = details.user_id
WHERE details.moderated = 0
AND expiration = 0
GROUP BY jobs.id
ORDER BY jobs.posting_date DESC
Running EXPLAINI get the following:
id select_type table type possible keys key key_len ref rows extra
1 SIMPLE details ALL job_id 537704 Using where; Using temporary; Using filesort
1 SIMPLE jobs eq_ref PRIMARY,address_id_indexPRIMARY 4 557574_dev.details.job_id 1 Using where
1 SIMPLE addresses eq_ref PRIMARY PRIMARY 4 557574_dev.jobs.address_id 1 Using where
1 SIMPLE states eq_ref PRIMARY PRIMARY 1 557574_dev.addresses.state_id 1 Using where
1 SIMPLE cities eq_ref PRIMARY PRIMARY 4 557574_dev.addresses.city_id 1
1 SIMPLE jobs_skills ref Job_skill Job_skill 4 557574_dev.jobs.id 4 Using index
1 SIMPLE users eq_ref PRIMARY PRIMARY 3 557574_dev.details.user_id 1
looking at EXPLAINyou can tell
- If a full table scan is in progress
- If there are no relevant posts
- Which table or join is so slow.
- Any other useful information in my "search to find a slow table"
. group_by ( ); temp filesort, , , . .