170 похожих чатов

Парни, у меня вопрос. Ситуация следующая. Есть у меня таблица

с товарами около 70 тыс штук. Информация о товарах, а также их характеристики обновляются каждые 3 минуты. Занимает это примерно 1 минуту. В момент, когда обновляются товары пользоваться сайтом невозможно. Страница грузится почти минуту. Ну очень долго. Как можно этого избежать?

17 ответов

16 просмотров

Транзакции?

как именно обновляются? Разбить на чанки Проводить поэтапно Но лучше использовать очереди Хотя тот момент, что раз в 3 минуты нужно посмотреть как будет работать

А можно обновить в таблице рядом, а потом переименовать таблицы?

Ivan-Novikov Автор вопроса
とよとみ
Транзакции?

"Serialization failure: 1213 Deadlock found when trying to get lock; try restarting" - как-то увидел такую ошибку, значит при обновлении чанками происходит блокировка таблицы. Из-за этого зависает? Точнее upsert использую

Ivan-Novikov Автор вопроса
Volodymyr Vi 🇺🇦
как именно обновляются? Разбить на чанки Проводит...

По ощущениям, в этот момент начинает тупить БД. Ну когда выполняется этот код

Ivan-Novikov Автор вопроса
Anton Rusakov
А можно обновить в таблице рядом, а потом переимен...

Не знаю на сколько это правильно. Выглядит как сомнительное решение. Или я не прав?

Ivan Novikov
screenshot По ощущениям, в этот момент начинает тупить БД. Ну...

А сервер мониторил? Где именно идет нагрузка? Что именно грузит? База данных или php? Вроде как на первый взгляд должно работать. Размер чанки пробовал уменьшать? Если проблема в базе данных - должно уменьшить на ее нагрузку, например, попробуй 100-200 поставь

Ivan-Novikov Автор вопроса
Volodymyr Vi 🇺🇦
А сервер мониторил? Где именно идет нагрузка? Что ...

Попробую уменьшить и еще я понял что очереди неправильно использую. Сейчас переделаю и отпишу)

Ivan Novikov
"Serialization failure: 1213 Deadlock found when t...

Нет. Не зависает, скорее не справляется с нагрузкой и ждет пока таблицы блок пройдет

Anton Rusakov
Категорически не правы

Мы так обновляли очень много какие таблиц. Но нужно учитывать что желательно в этот момент не писать в эту таблицу. То есть желательно чтобы все записи в нее шли из одного места.

Ivan-Novikov Автор вопроса
Anton Rusakov
Мы так обновляли очень много какие таблиц. Но нужн...

Спасибо, попробую. Мне вроде как подходит такой вариант.

Ivan Novikov
Попробую уменьшить и еще я понял что очереди непра...

Я правильно понимаю - сюда еще и очереди прикручены?

Ivan-Novikov Автор вопроса
Ivan Novikov
Да

Точнее нет. Сейчас прикручиваю. До этого не правильно были прикручены

Ivan-Novikov Автор вопроса
Volodymyr Vi 🇺🇦
тогда интересно посмотреть полный код

Короче очереди помогли и размер чанка поменял. Очереди не правильно использовал)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта