Hi i have little long time query which takes almost 400ms .
this is my query
SELECT id, `from`
FROM messages
WHERE `to` = ?
AND `to_viewed` = '0'
AND `to_deleted` = '0'
AND TIMESTAMPDIFF(SECOND,created,?)< 20 AND TIMESTAMPDIFF(SECOND,created,?)>= 0
How can i optimize this ?
obs i have no idex .
EDIT to show my EXPLAIN
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE messages ALL created NULL NULL NULL 10 Using where
The following recommendations will help you in your SQL tuning process.
You'll find 3 sections below:
ALTER TABLE `messages` ADD INDEX `messages_idx_to_to_view_to_dele_timesta` (`to`,`to_viewed`,`to_deleted`,`timestampdiff_second_created`);
SELECT
messages.id,
messages.`from`
FROM
messages
WHERE
messages.`to` = ?
AND messages.`to_viewed` = '0'
AND messages.`to_deleted` = '0'
AND messages.timestampdiff_second_created < 20
AND messages.timestampdiff_second_created >= 0