powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оптимизировать запрос
8 сообщений из 8, страница 1 из 1
Оптимизировать запрос
    #38836270
Фотография Andrew_nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите как можно оптимизировать запрос вида

Код: sql
1.
2.
3.
4.
SELECT
  t1.Name
FROM t1, t2
WHERE INSTR(t2.description, t1.Name) > 0


который ищет ключевые слова из таблицы T1 в таблице T2
...
Рейтинг: 0 / 0
Оптимизировать запрос
    #38836275
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запросто точно именно такой?
Что-то в нем маловато смысла... Либо не хватает фильтра по таблице t2, либо еще чего-то.
...
Рейтинг: 0 / 0
Оптимизировать запрос
    #38836283
JeStone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

Декартово произведение по двум таблицам с фильтрацией по вхождению Name в description. Вполне осмысленный запрос.

Andrew_nik,
Чем вас не устраивает этот запрос в таком виде? Покажите план выполнения.
...
Рейтинг: 0 / 0
Оптимизировать запрос
    #38836286
JeStone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

хотя беру свои слова обратно, тут либо группировки либо distinct не хватает, в противном случае могут быть дубль-записи
...
Рейтинг: 0 / 0
Оптимизировать запрос
    #38836290
Фотография Andrew_nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не устраивает время выполнения - 6 минут
...
Рейтинг: 0 / 0
Оптимизировать запрос
    #38836293
Фотография Andrew_nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
результаты вставляются во временную таблицу с уникальным ключом (Name) это касательно DISTINCT
...
Рейтинг: 0 / 0
Оптимизировать запрос
    #38836304
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrew_nikрезультаты вставляются во временную таблицу с уникальным ключом (Name) это касательно DISTINCTНу тогда попробуйте так:
Код: sql
1.
2.
3.
SELECT t1.Name
FROM t1
WHERE EXISTS (SELECT NULL FROM t2 WHERE INSTR(t2.description, t1.Name) > 0)

Так хотя бы поменьше тупого перебора будет.

Хотя фундментально это решать нужно иначе - составлением и поддержанием отдельной таблицы-индекса с соответствиями description-Name.
...
Рейтинг: 0 / 0
Оптимизировать запрос
    #38836306
JeStone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrew_nik,

Еще можно попробовать решить задачу через полнотекстовый поиск. Он определенно будет быстрее INSTR, LIKE, LOCATE и REGEXP (особенно на больших description)
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оптимизировать запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]