Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 01.06.2016
Сообщений: 7

Очень медленно работает выборка INNER JOIN

18.02.2017, 14:08. Показов 1727. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
У меня есть таблица компании, таблица недвижимости и таблица с параметрами недвижимости.
При выборе недвижимости, например квартиры на съем, пользователь может указать параметры по которым он ее ищет.
Есть два типа параметров, select и radio , т.е. что-то выбирается из списка select,а что-то путем нажатия на radio.
Чтобы таблицы были не переполнены я просто разнес данные по двум таблицам в зависимости от типа параметра.
Вот так выглядит мой селект.

SELECT names.name_ru,
real_estate.price_real_estate,
names.uniq_id,
names.name_en,
real_estate.id_real_estate
FROM (company_names as names, company_real_estate as real_estate)
INNER JOIN real_estate_properties_select as p_select2 on real_estate.id_real_estate = p_select2.id_real_estate
INNER JOIN real_estate_properties_select as p_select4 on real_estate.id_real_estate = p_select4.id_real_estate
INNER JOIN real_estate_properties_select as p_select6 on real_estate.id_real_estate = p_select6.id_real_estate
INNER JOIN real_estate_properties_select as p_select7 on real_estate.id_real_estate = p_select7.id_real_estate
INNER JOIN real_estate_properties_radio as p_radio0 on real_estate.id_real_estate = p_radio0.id_real_estate
INNER JOIN real_estate_properties_radio as p_radio1 on real_estate.id_real_estate = p_radio1.id_real_estate
INNER JOIN real_estate_properties_radio as p_radio3 on real_estate.id_real_estate = p_radio3.id_real_estate
INNER JOIN real_estate_properties_radio as p_radio5 on real_estate.id_real_estate = p_radio5.id_real_estate
INNER JOIN real_estate_properties_radio as p_radio8 on real_estate.id_real_estate = p_radio8.id_real_estate
INNER JOIN real_estate_properties_radio as p_radio11 on real_estate.id_real_estate = p_radio11.id_real_estate
INNER JOIN real_estate_properties_radio as p_radio13 on real_estate.id_real_estate = p_radio13.id_real_estate
INNER JOIN real_estate_properties_radio as p_radio14 on real_estate.id_real_estate = p_radio14.id_real_estate
INNER JOIN real_estate_properties_radio as p_radio25 on real_estate.id_real_estate = p_radio25.id_real_estate
WHERE names.uniq_id = real_estate.uniq_id
and real_estate.real_estate_type = 1
and real_estate.sale_rent = 0
and p_select2.id_propertie = 3
and p_select2.select_value = 2
and p_select4.id_propertie = 5
and p_select4.select_value = 2
and p_select6.id_propertie = 7
and p_select6.select_value = 1
and p_select7.id_propertie = 8
and p_select7.select_value = 1
and p_radio0.id_propertie = 1
and p_radio0.radio_value = 0
and p_radio1.id_propertie = 2
and p_radio1.radio_value = 1
and p_radio3.id_propertie = 4
and p_radio3.radio_value = 1
and p_radio5.id_propertie = 6
and p_radio5.radio_value = 1
and p_radio8.id_propertie = 9
and p_radio8.radio_value = 1
and p_radio11.id_propertie = 12
and p_radio11.radio_value = 1
and p_radio13.id_propertie = 14
and p_radio13.radio_value = 1
and p_radio14.id_propertie = 15
and p_radio14.radio_value = 1
and p_radio25.id_propertie = 144
and p_radio25.radio_value = 1

Это пример максимальной опции параметров при выборе недвижимости, и так я получаю ответ от сервера TIME OUT (((, т.е. время на обработку такого селекта превышает допустимое ((((.
При меньшем, скажем в половину раз, работает и даже я бы сказал быстро, относительно быстро.
Помогите пожалуйста оптимизировать этот огромный селект.
Очень прошу не посылайте меня к NoSQL решениям, на данном этапе я не могу поменять архитектуру.
СПАСИБО Вам всем !!!!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.02.2017, 14:08
Ответы с готовыми решениями:

Интернет работает очень медленно на одном ПК, на другом работает быстрее.
Такая проблема, интернет очень плохо работает,скорость совсем маленькая (14м) подключаю другой комп в этот же кабель скорость(40м) в чём...

Очень медленно работает ПК
День добрый. Помогите решить проблему. Имеется компьютер с Win 7 64. Машинка жестко тормозит. Сначала грешил на установленный Kaspersky...

Очень медленно работает 1С 8.3?
С чем может быть связана медленная работа 1С? Есть терминальный сервер Windows Server 2003 x64. (2600 Мгц, 8Гб ОЗУ). БД хранятся...

4
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
18.02.2017, 16:29
Лучший ответ Сообщение было отмечено lbgraf как решение

Решение

Попробуйте так:
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
34
35
36
37
38
39
40
SELECT
    cn.name_ru,
    re.price_real_estate, 
    cn.uniq_id, 
    cn.name_en, 
    re.id_real_estate
FROM
    company_names cn,
    company_real_estate re
JOIN real_estate_properties_select ps
    USING(id_real_estate)
JOIN real_estate_properties_radio pr
    USING(id_real_estate)
WHERE
    cn.uniq_id = re.uniq_id 
    AND re.real_estate_type = 1 
    AND re.sale_rent = 0 
    AND (
        ps.id_propertie,
        ps.select_value
    ) IN(
        (3, 2),
        (5, 2),
        (7, 1),
        (8, 1)
    )
    AND (
        pr.id_propertie,
        pr.select_value
    ) IN(
        (1, 0),
        (2, 1),
        (3, 1),
        (6, 1),
        (9, 1),
        (12, 1)
        (14, 1),
        (15, 1),
        (144, 1)
    )
1
81 / 25 / 19
Регистрация: 27.10.2014
Сообщений: 420
18.02.2017, 17:18
Цитата Сообщение от lbgraf Посмотреть сообщение
Очень медленно работает выборка INNER JOIN
12 джоинов на 2 таблицы
0
0 / 0 / 0
Регистрация: 01.06.2016
Сообщений: 7
19.02.2017, 20:33  [ТС]
Para bellum, Спасибо!!!!
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
19.02.2017, 20:43
Замечательно, что удалось помочь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.02.2017, 20:43
Помогаю со студенческими работами здесь

VS 2010 очень медленно работает
Привет! Может у кого-то есть опыт. Я делаю пользовательский контрол, на котором ровно 90 элементов управления. Работать невозможно!...

Очень медленно работает ноутбук
Здравствуйте! Проблема такая: ноутбук медленно реагирует на нажатие мышки и самопроизвольно выполняет какие-то действия, например открывает...

Очень медленно работает компьютер
Был изначально windows 8 но затем обновили до windows 10 на компе неск файлов и фотки , фильмов игр и прочего нет, свободной памяти...

Запрос работает очень медленно
Помогите мне ускорить работу запроса. Сам запрос имеет такой вид select x2.столбец1, x2.столбец2, xx.столбец1, x.столбец1,...

Pycharm работает очень медленно
Доброго времени суток. Скачал pycharm последнюю версию с офф. сайта. Установил jdk 8 по следующей инструкции:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru