Господа буду благодарен за помощь. Вот схема Mysql. Код (Text): -- TABLE `post` ( `ID` mediumint(9) NOT NULL auto_increment, `CAT_ID` mediumint(9) NOT NULL, `TITLE` varchar(255) NOT NULL, `TEXT` mediumtext NOT NULL, `TOPIC_ID` mediumint(9) default '0', PRIMARY KEY (`ID`), UNIQUE KEY `ID` (`ID`) ) ; # -------------------------------------------------------- -- TABLE `topic` ( `ID` mediumint(9) NOT NULL auto_increment, `CAT_ID` mediumint(9) NOT NULL, `TITLE` varchar(255) NOT NULL, PRIMARY KEY (`ID`), UNIQUE KEY `ID` (`ID`) ) ; Вот запрос Код (Text): $sql="SELECT ,p.ID, p.TOPIC_ID, t.ID FROM $TABLE_FORUM_POST p, $TABLE_FORUM_TOPIC t WHERE $SEARCH_QUERY AND p.TOPIC_ID=t.ID GROUP BY p.TOPIC_ID ORDER BY p.ID DESC LIMIT $SEARCH_RESULTS_MAX_NUM"; Вся проблема в GROUP BY p.TOPIC_ID тормозит не много уже на 400.000 записей. Без него 0.2 сек с ним 1.3 сек Ищу я по 2-м таблицам постам и по топикам, но выдать в итоге я должен топики. и они должны быть отсортированны На что этот запрос можно заменить, или как вообще оптимизировать этот запрос. Пробовал ставить вложености запросов, время тоже самое. Спасибо.
Проиндксируйте поле TOPIC_ID - значительно ускорит работу... Вообще, у меня личное правило (я именую столбики таким же образом) если имя столбика заканчивается на ID - он 100% должен быть проиндексирован.
Спасибо за подсказку Значит так, проиндексировал, скрипт стал в общем работать быстрее, но сам поиск стал 2х медленее, тот есть сейчас тоже самое поискать занимает уже 3.6 сек... Не чего не понимаю. как такое может быть...