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

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

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

17 ответов

12 просмотров

Транзакции?

как именно обновляются? Разбить на чанки Проводить поэтапно Но лучше использовать очереди Хотя тот момент, что раз в 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 🇺🇦
тогда интересно посмотреть полный код

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

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

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

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Я вот подумал. SSE выполняет операции максимум с 64-битной точностью. А FPU - всегда с 80-битной. Разве не должно быть FPU точнее тогда?
The Bird of Hermes
13
как быть с принтером? такой подход прокатит?
zamtmn
12
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Я не понимаю, это троллинг или что? Швабрика поддерживают, который буквально пишет на ассемблере взаимодействия с винапи. Я это ещё написал загрузчик и хоть что-то изучаю в о...
Shadow Akira
6
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Привет. Подскажите, как правильно сматчить лист фиксированного размера, чтобы компилятор не говорил мне о неполном паттерне? Допустим что-то такое [x', y'] = sort [x, y]?
Arseny
8
Карта сайта