J. Не Знакомлюсь Livingston
J. Не Знакомлюсь Livingston

Помогите оптимизировать запрос MySQL

SELECT DISTINCT `T1`.*, `T4`.`Path` FROM `fl_listings` AS `T1` LEFT JOIN `fl_listing_plans` AS `T2` ON `T1`.`Featured_ID` = `T2`.`ID` LEFT JOIN `fl_categories` AS `T4` ON `T1`.`Category_ID` = `T4`.`ID` LEFT JOIN `fl_accounts` AS `T7` ON `T1`.`Account_ID` = `T7`.`ID` WHERE ( TIMESTAMPDIFF(HOUR, `T1`.`Featured_date`, NOW()) <= `T2`.`Listing_period` * 24 OR `T2`.`Listing_period` = 0 ) AND `T4`.`Type` = 'listings' AND `T1`.`Status` = 'active' AND `T1`.`Photos_count` > 0 AND `T7`.`Status` = 'active' AND `T4`.`Status` = 'active' GROUP BY `T1`.`ID` ORDER BY `Last_show` ASC, RAND() LIMIT 5
Сейчас время выполнения 2,3 сек.. .
Эксплайн:
idselect_typetabletypepossible_keyskeykey_lenrefrowsExtra
1SIMPLET7refPRIMARY,StatusStatus1const2Using where; Using index; Using temporary; Using filesort
1SIMPLET1refCategory_ID,Account_ID,Status,Featured_IDStatus1const312276Using where
1SIMPLET4eq_refPRIMARY,TypePRIMARY4u2040ru_db.T1.Category_ID1Using where
1SIMPLET2eq_refPRIMARY,Listing_periodPRIMARY4u2040ru_db.T1.Featured_ID1Using where

Таблицы:
CREATE TABLE `fl_listing_plans` (
...
PRIMARY KEY (`ID`),
KEY `Type` (`Type`),
KEY `Listing_period` (`Listing_period`),
KEY `Status` (`Status`),
KEY `Cross` (`Cross`)
) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8

CREATE TABLE `fl_listings` (
...
PRIMARY KEY (`ID`),
KEY `Category_ID` (`Category_ID`),
KEY `Account_ID` (`Account_ID`),
KEY `Plan_ID` (`Plan_ID`),
KEY `Pay_date` (`Pay_date`),
KEY `Status` (`Status`),
KEY `Last_show` (`Last_show`),
KEY `Featured_date` (`Featured_date`),
KEY `Featured_ID` (`Featured_ID`),
KEY `Date` (`Date`),
KEY `Cron` (`Cron`),
KEY `body_style` (`body_style`),
FULLTEXT KEY `additional_information` (`additional_information`),
FULLTEXT KEY `title` (`title`)
) ENGINE=MyISAM AUTO_INCREMENT=312301 DEFAULT CHARSET=utf8

CREATE TABLE `fl_categories` (
...
PRIMARY KEY (`ID`),
KEY `Type` (`Type`),
KEY `Key` (`Key`),
KEY `Path` (`Path`),
KEY `Parent_ID` (`Parent_ID`),
KEY `Level` (`Level`),
KEY `Lock` (`Lock`),
KEY `Parent_IDs` (`Parent_IDs`)
) ENGINE=InnoDB AUTO_INCREMENT=2216 DEFAULT CHARSET=utf8

ОК
Олег Курнаев

пиши в личку

ЛМ
Лестат Маланин

может такое время выполнения не из-за запроса, а потому что данных много?)))

Похожие вопросы
Проблема с запросом к БД - MySQL
Что не так в этом проклятущем MySQL запросе!?
php запрос к MySQL(SQL)
PHP запрос к MySQL: логическое "ИЛИ"
запрос к MySQL с использованием json_encode
помогите найти ошибку в mysql запросе
запрос в mysql (update)
Простой запрос в MySQL
Запрос MYSQL
mysql запрос