[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Посмотрите на SQL запрос
Markus111
Здравствуйте.
Составил запрос, но мне кажется что он при большом количестве записей будет медленным, подскажите как его можно оптимизировать, или и так сойдет
'(SELECT n.img,n.title,n.date,n.url,n.descript FROM novosty n
join (SELECT id_statia FROM title where MATCH (title) AGAINST( "'
.$search.'" IN BOOLEAN MODE) and cat="1") t ON n.id = t.id_statia)
union
(SELECT n.img,n.title,n.date,n.url,n.descript FROM statia n
join (SELECT id_statia FROM title where MATCH (title) AGAINST( "'
.$search.'" IN BOOLEAN MODE) and cat="2") t ON n.id = t.id_statia)
union
(SELECT n.img,n.title,n.date,n.url,n.descript FROM test_drive n
join (SELECT id_statia FROM title where MATCH (title) AGAINST( "'
.$search.'" IN BOOLEAN MODE) and cat="3") t ON n.id = t.id_statia)
union
(SELECT n.img,n.title,n.date,n.url,n.descript FROM history n
join (SELECT id_statia FROM title where MATCH (title) AGAINST( "'
.$search.'" IN BOOLEAN MODE) and cat="4") t ON n.id = t.id_statia)
'




Спустя 24 минуты, 4 секунды (21.06.2012 - 11:32) sergeiss написал(а):
А почему бы эти категории не сделать где-то в одном условии, зачем столько джойнов?

Спустя 30 минут, 47 секунд (21.06.2012 - 12:02) Markus111 написал(а):
Не пойму каким образом это сделать

Спустя 9 минут, 39 секунд (21.06.2012 - 12:12) vagrand написал(а):
Запрос ужасен, при большом количестве записей и нагрузке положит сервак

Спустя 29 минут, 23 секунды (21.06.2012 - 12:41) Markus111 написал(а):
Помогите составить нормальный запрос

Спустя 13 минут, 11 секунд (21.06.2012 - 12:55) sergeiss написал(а):
Цитата (Markus111 @ 21.06.2012 - 13:41)
Помогите составить нормальный запрос

Так ты для начала на словах опиши, что надо получить smile.gif Из начального запроса можно предположить, что ты хочешь. Но лучше бы услышать это от тебя. Тогда и думать будем.

Для начала могу предположить, что надо оставить только одну часть из четырех и заменить 'cat="1"' (кстати, зачем тут кавычки ты поставил?) на 'cat IN (1, 2, 3, 4)'. Но не буду утверждать, что это то, что тебе надо - до тех пор, пока ты на словах не озвучишь алгоритм.

Спустя 17 минут, 8 секунд (21.06.2012 - 13:12) Markus111 написал(а):
Существует 4 таблицы, также имеет категорию 1,2,3,4, пятая имеет title,cat каждой с этих таблиц.
Я хочу сделать поиск по title с таблиц.Эти таблицы ENGINE=INNODB, таблица title ENGINE=MyISAM для использования FULLTEXT. Используя таблицу title и объединяя другие таблицы должен работать поиск. Выслушаю ваши предложения по созданию запроса, может другой структуры.

Спустя 40 минут, 29 секунд (21.06.2012 - 13:52) sergeiss написал(а):
Сорри, "проглядел", что там 4 разные таблицы... Тогда, наверное, по-другому не сделаешь.

Дальше оптимизировать только если по индексам. Может быть, в данном случае и партишены помогут - если данных много. Если же очень много данных, то тогда репликации делать smile.gif

Спустя 6 минут, 38 секунд (21.06.2012 - 13:59) Markus111 написал(а):
Спасибо за попытку sergeiss


_____________
https://t.me/pump_upp
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.