За последние 24 часа нас посетили 22719 программистов и 1200 роботов. Сейчас ищут 698 программистов ...

Медленная работа запросов с OR

Тема в разделе "MySQL", создана пользователем IvanKut, 11 фев 2021.

  1. IvanKut

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

    С нами с:
    27 июл 2018
    Сообщения:
    258
    Симпатии:
    0
    Привет
    Уже не первый раз замечаю, что как только в запросе появляется OR - то запрос становиться супер медленным. Например
    Код (Text):
    1. bu.`email` = cd.`contact` OR bu.`phone` = cd.`contact`
    На всех полях - стоят индексы. По отдельности без OR запрос летает. Как только добавляется OR - все тормоза.
    С чем это связано?
    OR нельзя без потери скорости работы запросов использовать?
     
  2. lastdays

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

    С нами с:
    27 сен 2012
    Сообщения:
    410
    Симпатии:
    74
    Попробуй UNION DISTINCT

    А вообще зачем используется поиск по емейлу и телефону? Возможно стоит в принципе изменить логику.
     
  3. IvanKut

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

    С нами с:
    27 июл 2018
    Сообщения:
    258
    Симпатии:
    0
    Да на UNION DISTINCT и перевел.
    Просто не пойму, ведь есть индексы - почему Mysql так крышу сносит)
     
  4. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    861
    Симпатии:
    132