LINUX.ORG.RU

[SQL] Помогите оптимизировать

 


0

0

Жил себе запрос, нормально бегал. Понадобилось немного его изменить
(дополнительное условие с OR). Стало заметно подтормаживать.
Что сделать, чтобы оно пошустрее работало?

Пробовал переписать его join'ами - примерно та же картина. В итоге
пока работает совершенно тупой вариант: union'ом объединены 2 запроса -
с b.use_regions=0 и bcs.city_id=:city_id. Но это не выход

Вот, собственно, запрос:

SELECT
    b.id, b.link, b.media_url
FROM
    b, b_categories bc, sites_categories sc, b_cities bcs
WHERE
    sc.site_id=:site_id
    AND
    b.id=bc.b_id
    AND
    bc.category_id=sc.category_id
    AND
    (
        b.use_regions=0
        OR
        (
            bcs.b_id=b.id
            AND
            bcs.city_id=:city_id
        )
    )
    AND
    b.age=:age;

СУБД - mysql 5.0.32
★★★

обнови мускул до последнего, говорят что в версиях ниже 5.0.51 есть проблемы с выбором стратегии выполнения запроса.

true_admin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.