@Us59

Что использовать при большом количестве UPDATE запросов?

Занимаюсь вопросом оптимизации, из-за большого количества запросов к БД сайт зачастую возвращает Error 500.
В итоге сейчас решил максимально избавиться от запросов через циклы и стараюсь собрать все данные в массив, и генерировать 1 запрос.

Уже задавался вопросом про несколько UPDATE одним запросом, но как я понимаю это не возможно.

Погуглил в интернете и наткнулся на:
LOCK TABLES `products` WRITE;
UPDATE `products` SET `description`='$text1' WHERE `name`='bmv';
UPDATE `products` SET `description`='$text2' WHERE `name`='ford';
UPDATE `products` SET `description`='$text3' WHERE `name`='lans';
UNLOCK TABLES;


Вопрос 1: Как делать UPDATE если нужно сделать обновление в 100 записях. Создавать 100 UPDATE запросов?
Вопрос 2: Есть ли смысл делать LOCK TABLES на время выполнения запросов?
Вопрос 3: Как поведет себя сайт, если допустим я обновил страницу, а она обращается к таблице, которую мы заблокировали? Сайт будет грузится до тех пор, пока таблица не разблокируется или до таймаута? или просто вернет ошибку?
  • Вопрос задан
  • 709 просмотров
Пригласить эксперта
Ответы на вопрос 1
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Не надо блокировать таблицу. Используйте транзакции. А 500 ошибка у вас не из-за базы, а из-за того что код написан криво
Ответ написан
Ваш ответ на вопрос

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

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