[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Оптимизация запроса
Гость_Дмитрий
Добрый день подскажите пожалуйста на сколько кретично использовать такой запрос в плане ресурсов, и можно ли это как-то оптимизировать )) спасибо


SELECT

messages.*, users.name

FROM

messages

INNER JOIN

users

WHERE

messages.sid=users.id

AND

rid='1'

AND

( status='0' OR status='1' OR status='3' )

AND

( users.name LIKE '%adasd%' OR messages.text LIKE '%adasd%' OR users.name LIKE '%%' OR messages.text LIKE '%%' OR users.name LIKE '%ads%' OR messages.text LIKE '%ads%' OR users.name LIKE '%sf%' OR messages.text LIKE '%sf%' OR users.name LIKE '%adf%' OR messages.text LIKE '%adf%' OR users.name LIKE '%asd%' OR messages.text LIKE '%asd%' OR users.name LIKE '%фвфыв%' OR messages.text LIKE '%фвфыв%' OR users.name LIKE '%%' OR messages.text LIKE '%%' OR users.name LIKE '%фвы%' OR messages.text LIKE '%фвы%' OR users.name LIKE '%ыа%' OR messages.text LIKE '%ыа%' OR users.name LIKE '%фва%' OR messages.text LIKE '%фва%' OR users.name LIKE '%фыв%' OR messages.text LIKE '%фыв%' )

ORDER BY id DESC LIMIT 100000




Спустя 10 минут, 16 секунд (13.02.2011 - 01:08) Arni написал(а):
Страшный запрос, что тут сказать. Наверно стоит описать чего вы хотите добиться этим запросом. Понятно что идет поиск пользователя по определенным критериям. Но может быть если описать подробнее то было бы можна и подумать.

Как варианты предлагаю.

1. Расставить грамотно индексы.
2. Попробовать разбить на два запроса. Бывает что два запроса будут работать быстрее нежели последствия при объединении таблиц.

Спустя 13 минут, 39 секунд (13.02.2011 - 01:22) Гость_Дима написал(а):
Собственно есть 2 таблицы users, messages

организовываю поиск, допустим пишу запрос "Пупкин Илья"

соединяю 2 таблицы, из users беру только users.name и присваиваю это имя id в messages (messages.sid=users.id)

и теперь хочу найти в этом запросе WHERE name LIKE '%ПУПКИН%' OR name LIKE '%ИЛЬЯ%' OR messages.text LIKE '%ПУПКИН%' и так далее )

Спустя 10 минут, 44 секунды (13.02.2011 - 01:32) Arni написал(а):
Если я правильно понимаю, идет поиск матереалов где встречается имя человека?

Спустя 8 минут, 40 секунд (13.02.2011 - 01:41) Guest написал(а):
не обязательно имя человека а любой запрос, поиск происход и в тексте и в имени автора

messages.text
users.name

запрос может выглядить как угодно хоть "ла тра пум ка Петя" и нужно вывести все где в тексте и в именя встречается любая комбинация слово\часть слова

Спустя 38 минут, 14 секунд (13.02.2011 - 02:19) Guest написал(а):
в общем обычный поиск набора слов в таблице

Спустя 1 час, 44 минуты, 19 секунд (13.02.2011 - 04:03) waldicom написал(а):
Может тогда использовать полнотекстовый поиск?
MySQL FULLTEXT

Спустя 9 часов, 9 минут, 20 секунд (13.02.2011 - 13:13) Guest написал(а):
Да так гораздо лучше, спасибо! ) Что вы еще посоветуете почитать полезного про mysql )
Быстрый ответ:

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