@skyfly2010

Как оптимизировать запрос mysql?

Добрый день, ув. профи. Подскажи пожалуйста, как оптимизировать запрос на обновление данных. В базе 22000 записей. Обновляется от 6000 до 8000.
Сейчас имеем:
$sql = "UPDATE catalog_tmp SET id = '".$key['id']."' WHERE o_mark = '".addslashes($key['model'])."';";
  • Вопрос задан
  • 136 просмотров
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat Куратор тега MySQL
{PHP, MySql, HTML, JS, CSS} developer
Какой тип поля имеет o_mark? и какова его длинна если это текстовое поле? Если запрос занимает более нескольких секунд - скорее всего не настроен индекс по этому полю.

Таблица с менее 1 000 000 записей в принципе не является большой, в данном случае очевидно есть проблема с настройкой.

Посмотрите не избыточна ли длинна поля, если поле помещается в 30 символов - ставьте 30, не надо делать "с большим запасом" индексные поля. Это нагружает выборку и раздувает индекс.
Ну и собсно создайте индекс на поле.
Ответ написан
@entermix
Возможно вам поможет этот ответ https://toster.ru/answer?answer_id=91852#answers_l...

вообще, как я понимаю, основная проблема в том, что мы посылаем 8000 запросов. Сейчас думаю, как сократить это число.


Попробуйте использовать expr IN (value,...)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы