|
UPDATE с множеством ID
|
|||
---|---|---|---|
#18+
Добрый день! Есть много запросов, все ID и STRING разные: Код: plsql 1.
Структура таблицы такая: Код: plsql 1. 2. 3. 4. 5.
В базе 10 млн записей, памяти на сервере 4gb. Если обновлять по одному ID уходит очень много времени (5 часов), не могу "догнать" как сделать быстрее. Или менять в памяти, делать дамп, а потом загружать? или транзакции по 20-30к за раз? есть ли какой-нибудь "современно быстрый" вариант? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2022, 13:16 |
|
UPDATE с множеством ID
|
|||
---|---|---|---|
#18+
vinn.consult, Вариантов много, но сначала нужно определиться откуда Вы берете данные для обновления? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2022, 13:30 |
|
UPDATE с множеством ID
|
|||
---|---|---|---|
#18+
SergiiW, Отдельный скрипт генерирует массив и через foreach сейчас делаются одиночные UPDATE ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2022, 13:43 |
|
UPDATE с множеством ID
|
|||
---|---|---|---|
#18+
vinn.consult, Не понял. Он что генерирует случайные данные? Или все таки берет откуда то? Отуда? Но не суть. 1. Можно сохранить в файл и уже с него грузить напрямую. Тут тоже есть два варианта с клиента грузить файл или с сервера. С сервера, естественно, будет быстрее, но может быть это уже будет не существенно. 2. Можно сохранить данные во временную таблицу, а уже с нее обновлять нужную таблицу. 3. Для быстроты можно еще временно отключить индексы и внешние ссылки. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2022, 17:38 |
|
UPDATE с множеством ID
|
|||
---|---|---|---|
#18+
Какая точно версия MySQL? Есть ли возможность управлять форматом представления данных? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2022, 20:27 |
|
UPDATE с множеством ID
|
|||
---|---|---|---|
#18+
Akina, 5.7.mysql_aurora.2.10.1 Не совсем понял про представление данных. Запросы на изменение могу сделать любыми, изначальную таблицу где меняются данные менять не могу. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2022, 12:54 |
|
UPDATE с множеством ID
|
|||
---|---|---|---|
#18+
SergiiW, Спасибо, но к сожалению эти варианты не подходят. Нужно или изменить запрос на выполнение или перепроектировать всю систему.. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2022, 12:57 |
|
UPDATE с множеством ID
|
|||
---|---|---|---|
#18+
SergiiW Можно сохранить данные во временную таблицу, а уже с нее обновлять нужную таблицу. В доке даже готовый пример есть для апдейта: https://dev.mysql.com/doc/refman/8.0/en/update.html Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2022, 14:38 |
|
UPDATE с множеством ID
|
|||
---|---|---|---|
#18+
vinn.consult перепроектировать всю систему ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2022, 14:40 |
|
UPDATE с множеством ID
|
|||
---|---|---|---|
#18+
Пример реализации: Код: sql 1. 2. 3. 4. 5. 6.
DEMO fiddle Недостатки: 1. Полное сканирование таблицы 2. Строковый поиск ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2022, 18:46 |
|
|
start [/forum/topic.php?fid=47&msg=40126573&tid=1827817]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 164ms |
0 / 0 |