Оптимизация запроса delete

Тема в разделе "Базы Данных", создана пользователем Den1a, 13 янв 2018.

  1. Den1a

    Den1a

    Регистрация:
    16 авг 2013
    Сообщения:
    55
    Симпатии:
    3
    Здравствуйте.

    В таблице 53к записей. Львиную долю содержит "product_id="

    Выполняется запрос на удаление все SEO URL товаров в из таблицы.

    Query_time: 1.442642 Lock_time: 0.000041 Rows_sent: 0 Rows_examined: 53000
    Код:
    delete from oc_url_alias where query like 'product_id%';
    Индексы не используются, т.к. подходящих строк более 30% и фул скан выполняется быстрее, чем пересмотр всех индексов (логика mysql)

    Есть идеи как можно переписать запрос?
    opencart 1.5

    Заранее благодарен.
     
  2. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
    тут нечего оптимизировать, т.к. поиск идёт по строке. либо повесить индекс, либо просто пережить :Smile:
     
  3. Den1a

    Den1a

    Регистрация:
    16 авг 2013
    Сообщения:
    55
    Симпатии:
    3
    Индекс на поле quer есть, но не используется для "product_id=", т.к. больше 30%,
    а вот в этом запросе индекс используется.
    Код:
    delete from oc_url_alias where query like 'category_id%';
    Значит в моем случае просто "пережить". Спасибо за ответ!
     
  4. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
    я так понимаю что эта операция не частая и вполне можно подзабить.
     
  5. Den1a

    Den1a

    Регистрация:
    16 авг 2013
    Сообщения:
    55
    Симпатии:
    3
    Все верно. 1 раз в сутки и то ночью.
    Просто висит постоянно в журнале медленных запросов. Сам не смог придумать как обойти. Решил спросить совета.