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 `price` ADD INDEX `price_idx_sku` (`sku`);
ALTER TABLE `totfrhrl` ADD INDEX `totfrhrl_idx_eta` (`eta`);
ALTER TABLE `totfrhrl` ADD INDEX `totfrhrl_idx_command` (`command`);
ALTER TABLE `totfrhrl` ADD INDEX `totfrhrl_idx_dispo` (`dispo`);
ALTER TABLE `totfrhrl_temp` ADD INDEX `totfrhrl_temp_idx_sku_eta` (`sku`,`eta`);
ALTER TABLE `totfrhrl_temp` ADD INDEX `totfrhrl_temp_idx_sku_command` (`sku`,`command`);
ALTER TABLE `totfrhrl_temp` ADD INDEX `totfrhrl_temp_idx_sku_dispo` (`sku`,`dispo`);
ALTER TABLE `totrihrl` ADD INDEX `totrihrl_idx_eta` (`eta`);
ALTER TABLE `totrihrl` ADD INDEX `totrihrl_idx_command` (`command`);
ALTER TABLE `totrihrl` ADD INDEX `totrihrl_idx_dispo` (`dispo`);
ALTER TABLE `totrihrl_temp` ADD INDEX `totrihrl_temp_idx_sku_eta` (`sku`,`eta`);
ALTER TABLE `totrihrl_temp` ADD INDEX `totrihrl_temp_idx_sku_command` (`sku`,`command`);
ALTER TABLE `totrihrl_temp` ADD INDEX `totrihrl_temp_idx_sku_dispo` (`sku`,`dispo`);
SELECT
DISTINCT CONCAT(p.sku,
'_IM') AS REF,
CONCAT(p.ref_fabriq,
' / FR ',
COALESCE(frtemp.dispo,
0),
' - EU ',
COALESCE(eutemp.dispo,
0),
' / CDE : FR ',
COALESCE(frtemp.command,
0),
' - EU ',
COALESCE(eutemp.command,
0),
' / ETA : FR ',
COALESCE(frtemp.eta,
''),
' - EU ',
COALESCE(eutemp.eta,
''),
'/ DATE FP : ',
p.fin_promo,
' / ',
p.class_prod,
' / ',
p.crc) AS DESCRIPTION
FROM
price AS p
LEFT JOIN
totfrhrl_temp frtemp
ON p.sku = frtemp.sku
LEFT JOIN
totrihrl_temp eutemp
ON p.sku = eutemp.sku
WHERE
p.sku IN (
SELECT
fr.sku
FROM
totfrhrl AS fr
LEFT JOIN
totfrhrl_temp frtemp
ON fr.sku = frtemp.sku
WHERE
fr.eta != frtemp.eta
UNION
SELECT
eu.sku
FROM
totrihrl AS eu
LEFT JOIN
totrihrl_temp eutemp
ON eu.sku = eutemp.sku
WHERE
eu.eta != eutemp.eta
UNION
DISTINCT SELECT
fr.sku
FROM
totfrhrl AS fr
LEFT JOIN
totfrhrl_temp frtemp
ON fr.sku = frtemp.sku
WHERE
fr.command != frtemp.command
UNION
DISTINCT SELECT
eu.sku
FROM
totrihrl AS eu
LEFT JOIN
totrihrl_temp eutemp
ON eu.sku = eutemp.sku
WHERE
eu.command != eutemp.command
UNION
DISTINCT SELECT
fr.sku
FROM
totfrhrl AS fr
LEFT JOIN
totfrhrl_temp frtemp
ON fr.sku = frtemp.sku
WHERE
fr.dispo != frtemp.dispo
UNION
DISTINCT SELECT
eu.sku
FROM
totrihrl AS eu
LEFT JOIN
totrihrl_temp eutemp
ON eu.sku = eutemp.sku
WHERE
eu.dispo != eutemp.dispo
)