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

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
select Firm_Address.id, Firm_Address.firmId, Firm_Address.addressId, Firm_Address.phones, Firm_Address.info,
  Firm_Address.workingHours, Firm_Address.position, Firm_Address.updateDate, Firm_Address.updateUserId, Address_Address.house as house,
  Address_Address.description as houseInfo, Address_Street.title as streetTitle, Address_Street.oldTitle as streetOldTitle,
  Address_Street.type as streetType, Address_District.title as districtTitle, Address_City.title as cityTitle, Firm.title as firmTitle,
  Firm.keywords as firmKeywords, Firm.pay as firmPay
from
 Firm_Address
inner join
 Address_Address on Firm_Address.addressId = Address_Address.id 
inner join
 Address_Street on Address_Address.streetId = Address_Street.id 
left join
 Address_District on Address_Street.districtId = Address_District.id 
inner join
 Address_City on Address_Street.cityId = Address_City.id 
inner join
 Firm on Firm.id = Firm_Address.firmId 
inner join
 Firm_Profile on Firm_Profile.firmId = Firm.id 
where
  (Address_City.title like ?
  or Address_Street.title like ?
  or Address_Street.oldTitle like ?
  or Address_District.title like ?
  or Address_Address.house like ?
  or Address_Address.description like ?
  or Firm_Address.phones like ?
  or Firm_Address.info like ?
  or Firm_Address.workingHours like ?)
  and Firm_Profile.descriptionHelp like ?
  and Firm_Profile.onHelp = ?
  and Firm.onHelp = ?
order by Firm.pay desc, Firm.title asc

Да, запрос очень громоздок, но такой уж он выходит.
Иногда слишком уж долго ищет (настолько долго, что получаю gateway timeout). Какие бы индексы добавить, чтобы пошустрее стало?
...
Рейтинг: 0 / 0
И снова ускорение запросов
    #38451910
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что за знаки вопроса в LIKE-ах? Что туда подставляется?

Покажите план запроса.
Почему одна табличка подлкеивается иначе - Address_District через left join ? При наличии в секции WHERE условия на эту таблицу left join превращается в просто join.

А вообще, подозреваю, что индексами ситуация не лечится. В общем случае LIKE-и индексы для отбора записей не используют, в них все может упереться. Но нужно проверить, что есть все индексы для join-ов.
...
Рейтинг: 0 / 0
И снова ускорение запросов
    #38451924
RJ45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftА что за знаки вопроса в LIKE-ах? Что туда подставляется?
Покажите план запроса.
Почему одна табличка подлкеивается иначе - Address_District через left join ? При наличии в секции WHERE условия на эту таблицу left join превращается в просто join. вместо ? подставляется что-то типа '%шевченк%' - всегда % с двух сторон и внутри одно слово - название улицы, или часть названия улицы.
Address_District джоинится иначе, потому что по ТЗ может быть улица, как с привязкой к району, так и без нее (т.е. связка Address_Street - Address_District) может отсутствовать
...
Рейтинг: 0 / 0
И снова ускорение запросов
    #38451951
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftПри наличии в секции WHERE условия на эту таблицу left join превращается в просто join.Возможно, тут я не совсем прав. Впрочем план запроса все равно нужен.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / И снова ускорение запросов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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