In case you have your own slow SQL query, you can optimize it automatically here.
For the query above, the following recommendations will be helpful as part of the SQL tuning process.
You'll find 3 sections below:
ALTER TABLE `v_templates` ADD INDEX `v_templates_idx_id` (`id`);
ALTER TABLE `violations` ADD INDEX `violations_idx_id_v_id` (`id`,`v_template_id`);
ALTER TABLE `vnotices` ADD INDEX `vnotices_idx_v_datetime_vtemplate_id` (`v_notice_datetime`,`vtemplate_notice_id`);
ALTER TABLE `vnotices` ADD INDEX `vnotices_idx_vnotice_datetime` (`vnotice_datetime`);
SELECT
vtn.*,
vn.v_notice_datetime
FROM
v_templates vt
JOIN
v_template_notices vtn
ON (
vtn.v_template_id = vt.id
)
JOIN
violations v
ON (
v.v_template_id = vt.id
)
LEFT JOIN
vnotices vn
ON (
vn.vtemplate_notice_id = vtn.id
)
WHERE
v.id = 1
AND vn.v_notice_datetime IS NULL
AND vtn.id > (
SELECT
max(vn.vtemplate_notice_id)
FROM
vnotices vn
WHERE
vn.vnotice_datetime IS NOT NULL
)