The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
mysql joins how it works, !*! tsolodov, 18-Июл-14, 17:25  [смотреть все]
Всем привет.

Хочется понять как работает mysql:
допустим есть 2 таблицы по 6 000 000 записей.

a:
id (PK)
filed1
filed2
filed3


b:
id(PK)
filed1
filed2
filed3

select * from a
join b on a.filed2 = b.filed2

Если я буду делать join этих таблиц по НЕ индексированным полям,

Я правильно понимаю что будет работать примерно следующий алгоритм:
для каждого поля первой таблицы будет полный обход другой таблицы(full scan) на предмет сопоставления полей, и того получится 6 000 000 * 6 000 000 проходов внутри mysql server?


  • mysql joins how it works, !*! arka, 19:03 , 20-Июл-14 (1)
    Примерно так и будет. Посмотрите, что выдаст этот запрос с EXPLAIN, и перемножьте значения поля rows. Также надо проверять поле type, если видим ALL, то значит идёт полный скан. Кроме индексов ещё бы и соответствие типов связываемых полей учитывать.
    Вроде бы так.
    • mysql joins how it works, !*! tsolodov, 15:36 , 21-Июл-14 (2)
      > Примерно так и будет. Посмотрите, что выдаст этот запрос с EXPLAIN, и
      > перемножьте значения поля rows. Также надо проверять поле type, если видим
      > ALL, то значит идёт полный скан. Кроме индексов ещё бы и
      > соответствие типов связываемых полей учитывать.
      > Вроде бы так.

      Спасибо!




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру