Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 11:27 07.07.25 
Клубове/ Компютри и Интернет / Бази данни Пълен преглед*
Информация за клуба
Тема Въпрос за избор на индекси в MySQL
Автор dzver (чатер)
Публикувано31.05.09 12:39  



Имам заявка, която се генерира в зависимост от разни условия.

SELECT
FROM a
JOIN b on a.b_id = b.b_id
LEFT JOIN c on a.c_id = b.c_id
LEFT JOIN d on b.d_id = d.d_id
ORDER BY b.some_date

Не пействам самата заявка, но това е основата. Проблемът е, че вместо да ползва индекса по some_date, mysql прави temporary и filesort и убива заявката.

SELECT
FROM a
JOIN b USE INDEX (ix_some_date) on a.b_id = b.b_id
LEFT JOIN c on a.c_id = b.c_id
LEFT JOIN d on b.d_id = d.d_id
ORDER BY b.some_date

Работи коректно.

SELECT
FROM a
JOIN b on a.b_id = b.b_id
LEFT JOIN c on a.c_id = b.c_id
LEFT JOIN d on b.d_id = d.d_id
LEFT JOIN e on a.id = e.a_id
LEFT JOIN e on b.id = f.b_id
ORDER BY b.some_date

Добавянето на 4-ти и 5-ти join водят до това, че индекса се ползва правилно. Добавянето на 7-и join води до невъзможност да се изпълнят заявките.

Промяната на order by:
order by g.some_date, b.some_date
води до неупотреба на индексите по 2-те полета за дата, като заявката се забавя поносимо.

Всички таблици имат самостоятелни индекси по ID и ордер полетата, Unique key по уникалностите им.

Основните таблици a и b са 140 000 записа и 1600 записа, другите са таблици са малки - ключ-стойност.

Всички опити да премахна 1 от абсолютно безполезните join-ове водят до незабавно умиране на сървъра :)

Таблиците са MyISAM. MySQL е 5.0

SOS?

Редактирано от dzver на 31.05.09 13:37.



Цялата тема
ТемаАвторПубликувано
* Въпрос за избор на индекси в MySQL dzver   31.05.09 12:39
. * Re: Въпрос за избор на индекси в MySQL salle   01.06.09 17:34
. * Re: Въпрос за избор на индекси в MySQL sonic86   17.06.09 20:28
. * Re: Въпрос за избор на индекси в MySQL salle   18.06.09 14:21
. * Re: Въпрос за избор на индекси в MySQL sonic86   20.06.09 16:56
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2025 Dir.bg Всички права запазени.