Iam looking for a MYSQL guru to optimize a couple of slow queries, please don’t bid on this project unless you are a expert in mysql and can dramatically reduce the time these queries take.
Below are the problem queries taken from the slow query log.
# Query_time: 8 Lock_time: 0 Rows_sent: 8 Rows_examined: 378201
SELECT *, COUNT(file_id) AS image_count FROM uploader_userfolders JOIN uploader_userfiles USING(folder_id) WHERE file_isimage=1 AND folder_i$
# Query_time: 16 Lock_time: 3 Rows_sent: 30 Rows_examined: 682764
SELECT pm.pfile_id, pm.mfile_id, pu.*, mf.file_description, mf.file_extension, mf.file_date, mf.file_key, mf.userid, mf.folder_id,uf.*, MAKE$
MAKE_SET( 1 |2, COUNT(mf.file_id), COUNT(pf.file_id) ) AS image_count,
MAKE_SET( 1 |2, pf.file_name, mf.file_name ) AS file_name,
MAKE_SET( 1 |2, pf.file_location, mf.file_location ) AS file_location,
MAKE_SET( 1 |2, pf.file_size, mf.file_size ) AS file_size,
MAKE_SET( 1 |2, pf.file_views, mf.file_views ) AS file_views,
MAKE_SET( 1 |2, pf.file_lastview, mf.file_last_view ) AS file_lastview,
MAKE_SET( 1 |2, pf.file_isimage, mf.file_isimage ) AS file_isimage,
MAKE_SET( 1 |2, uf.folder_name, pu.upload_name ) AS set_name,
ud.username,ud.avatar
FROM uploader_pmfiles AS pm
LEFT JOIN uploader_puploads AS pu ON ( pm.pfile_id = pu.upload_id )
LEFT JOIN uploader_pfiles as pf USE INDEX(upload_id) USING(upload_id)
LEFT JOIN uploader_userfiles AS mf ON ( pm.mfile_id = mf.file_id )
LEFT JOIN uploader_userfolders AS uf ON ( mf.folder_id = uf.folder_id )
LEFT JOIN uploader_users AS ud ON ( mf.userid = ud.userid )
WHERE (pu.upload_ispublic = 1 OR uf.folder_ispublic = 1)
GROUP BY mf.folder_id, pu.upload_id
ORDER BY pm.file_date DESC
LIMIT 0, 30;