MySQL - Реально ли оптимизировать запрос?

Ответить
Аватара пользователя
volter

MySQL - Реально ли оптимизировать запрос?

Сообщение volter »

Добрый день, хотел проконсультироваться у знающих людей, реально ли оптимизировать данный запрос ?



Таблица test где продемонстрирована иерархия разделов.

parent_id - идентификатор раздела РОДИТЕЛЯ



+----+-------------+-------------+

| id | name | parent_id |

+----+-------------+-------------+

| 1 | aa | NULL |

| 2 | bb | 1 |

| 3 | cc | 2 |

| 4 | cc | NULL |

| 5 | dd | 4 |

| 6 | ee | 5 |

+----+------------+-------------+



Допустим нужно выбрать раздел 'cc' который относится к разделу 'bb' который в свою очередь относится к разделу 'aa'.



Мой вариант запроса:



select * from test where `name`='cc' and `parent_id`=(

select id from test where `name`='bb' and `parent_id`=(

select id from test where `name`="aa"

)

);



Есть ли иные пути создания запроса, можно ли укоротить запись или сделать ее выполнение быстрее чем в данном примере?



Заранее благодарю.
Аватара пользователя
Delirium

Re: MySQL - Реально ли оптимизировать запрос?

Сообщение Delirium »

Пишу от "руки", за точность не ручаюсь.

Попробуйте что то в таком духе:





Код:

Код: Выделить всё

select T1.id, T1.name, T1.paren_td from test T1, test T2, test T3 where
T1.name='cc' and 
T2.name='bb' and
T3.name='aa' and T2.parent_id = T3.id and T1.parent_id = T2.id

Что то в этом духе. Суть такая, что вы делаете тройную выборку из одной таблицы и присваиваете этим таблицам разные имена(Т1, Т2, Т3)(чтобы не путаться)/
Ответить

Вернуться в «Программирование и базы данных»