powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оптимизация отбора запроса
5 сообщений из 5, страница 1 из 1
Оптимизация отбора запроса
    #38724628
Vyze
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую, уважаемые гуру.
Ситуация: необходимо выбрать поле из таблицы final_table , с отбором по полю t_1_id из таблицы t_1 . Таблица t_1 с отбором по полю t_2_id из таблицы t_2. А таблица t_2 с отбором по полю number = 555. Есть 2 варианта реализации:
параллельным запросом -
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT 
    `final_table`.`time`
  FROM
  `final_table`,
    `t_1`,
    `t_2` 
  WHERE `t_2`.`number` = 555  
    AND `t_2`.`id` = `t_1`.`t_2_id`
    AND `t_1`.`id` = `final_table`.`t_1_id`



или вложенным -
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SELECT 
    `final_table`.`time`
  FROM
    `final_table` 
  WHERE `final_table`.`t_1_id` IN 
    (SELECT 
      `id` 
    FROM
      `t_1` 
    WHERE 
      `t_1`.`t_2_id` IN 
      (SELECT 
        `id` 
      FROM
        `t_2` 
      WHERE `t_2`.`number` = 555))



Сейчас таким образом выбирается очень маленький объем данных, и я не могу сравнить производительность нормально. Какой вариант более предпочтителен по производительности? Возможно, это как-то стандартизировано и описано, а я не нашел.
...
Рейтинг: 0 / 0
Оптимизация отбора запроса
    #38724632
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
первый.
называется INNER JOIN
...
Рейтинг: 0 / 0
Оптимизация отбора запроса
    #38724648
Vyze
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrow,

т.е. INNER JOIN последовательно между таблицами ?
Код: plsql
1.
2.
3.
...FROM final_table 
INNER JOIN table_1 ON final_table.t_1_id = t_1.id  
INNER JOIN t_2 ON  t_1.t_2.id = t_2.id WHERE t_2.number = 555 
...
Рейтинг: 0 / 0
Оптимизация отбора запроса
    #38724688
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Твой первый и последний запросы абсолютно идентичны. Не текстом - но оба генерируют абсолютно одинаковый псевдокод.
Именно такая форма предпочтительна, особенно если на таблицах имеются необходимые для нормальной работы запроса индексы.
Вариант же с вложенными подзапросами почти наверняка приведёт к генерации временных таблиц, а при объёмных данных лежать им на диске, что выполнения ни разу не ускорит...
...
Рейтинг: 0 / 0
Оптимизация отбора запроса
    #38724722
Vyze
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оптимизация отбора запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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