За последние 24 часа нас посетили 18843 программиста и 1686 роботов. Сейчас ищут 835 программистов ...

Чем заменить in ?

Тема в разделе "MySQL", создана пользователем joost, 20 янв 2010.

  1. joost

    joost Guest

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

    Делаю выборку запросом
    [sql]select distinct value from descrs where type=72 and properti=1 and name in (select distinct descrs.name from descrs where descrs.value=2524) limit 3[/sql]

    Тормозит использование in .
    Как без него ?
     
  2. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    переделать структуру БД.
     
  3. joost

    joost Guest

    а что не так?
    как имено переделать?
     
  4. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Можешь сделать
    Код (Text):
    1. EXPLAIN свой запрос
    и добавить индексы по нужным полям.
    Это несколько ускорит выборки, но не кардинально.

    Поскольку EAV сам по себе медленный.

    Хотя.... что у тебя за база, что этот запрос тормозит? 2млн записей?