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 `es_temp1` ADD INDEX `es_temp1_idx_letter_to` (`letter_to`);
ALTER TABLE `letters` ADD INDEX `letters_idx_letter_from_letter_to` (`letter_from`,`letter_to`);
ALTER TABLE `letters` ADD INDEX `letters_idx_letter_status_letter_read_da` (`letter_from`,`status`,`letter_to`,`read_date`);
ALTER TABLE `letters` ADD INDEX `letters_idx_read_date` (`read_date`);
SELECT
let.letter_from,
let.`letter_to`,
COUNT(let.`letter_from`) AS sendMail,
es_temp1.readMail,
(SELECT
letters.`read_date`
FROM
letters
WHERE
letters.letter_from = 310
AND letters.`status` = 1
AND letters.`letter_to` = let.`letter_to`
ORDER BY
letters.`read_date` DESC LIMIT 1) AS dateLastRead,
(SELECT
`auto`
FROM
letters
WHERE
letters.letter_from = 310
AND letters.`status` = 1
AND letters.`letter_to` = let.`letter_to`
ORDER BY
letters.`read_date` DESC LIMIT 1) AS auto
FROM
`letters` let
LEFT JOIN
es_temp1
ON es_temp1.letter_to = let.`letter_to`
WHERE
let.letter_from = 310
GROUP BY
let.letter_to
ORDER BY
NULL