|
update всей таблицы в 40гб
|
|||
---|---|---|---|
#18+
есть mariadb 10.3 и есть большая таблица в 40гб Код: sql 1.
в innodb. Индекс есть составной нужно сделать простой апдейт Код: sql 1.
на рабочей таблице Что нужно что бы ускорить этот процесс? а то уже часа 3 выполняется. Может какой конфиг надо прописать, может ресурса какого-то не хватает. Диски ссд, рейд 1, 64 оперативы ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2020, 18:13 |
|
update всей таблицы в 40гб
|
|||
---|---|---|---|
#18+
Так это ж фуллскан... не, никак такое не ускорить. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2020, 19:09 |
|
update всей таблицы в 40гб
|
|||
---|---|---|---|
#18+
mumuskul Индекс есть составной Вероятно, будет быстрее, если его сначала дропнуть, а потом пересоздать. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2020, 19:11 |
|
update всей таблицы в 40гб
|
|||
---|---|---|---|
#18+
Akina Так это ж фуллскан... не, никак такое не ускорить. Я понимаю, ну может настройки какие-то, буфер там какой-то увеличить, или еще что-то? А то я не очень разбираюсь, стоит только innodb_buffer_pool_size = 32G innodb_log_file_size = 512MB miksoft mumuskul Индекс есть составной Вероятно, будет быстрее, если его сначала дропнуть, а потом пересоздать. Таблица рабочая, не вариант. Разве что создавать новую таблицу, и скопировать туда данные измененные, а потом создать индекс и переименовывать таблицу. Но я хз, насколько это правильно. Просто еще момент, что это не разовая операция, а раз в месяц бы такое делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2020, 19:51 |
|
update всей таблицы в 40гб
|
|||
---|---|---|---|
#18+
индекс надо дропать по-любому потом заново создавать а сколько займёт вытащить 40гб в файл(ы) через COPY ? (большие файлы НЕ надо делать, это опять тормознёт) так то INSERT через COPY быстрее работает... (опять же БЕЗ индексов) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2020, 22:11 |
|
update всей таблицы в 40гб
|
|||
---|---|---|---|
#18+
Алексей Роза INSERT через COPY ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2020, 23:20 |
|
update всей таблицы в 40гб
|
|||
---|---|---|---|
#18+
Странно. Если раз в месяц вычитать Value1=value1-value2 То тут должна быть какая-то арифметическая оптимизация. Вьюшку создать. Или триггер. Ну вобщем сделать так чтоб операция вычитания была по максимуму отложенной. Вам же не все 40 Гб сразу нужны вычтенными? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2020, 07:48 |
|
update всей таблицы в 40гб
|
|||
---|---|---|---|
#18+
авторВероятно, будет быстрее, если его сначала дропнуть, а потом пересоздать. если мария умеет это делать без пересоздания таблицы то возможно это вариант, хотя ТС сказал что не вариант, с другой стороны изменения такого объема должны быть регламентными без пользователей если не обязательно делать изменение в одной транзакции - я бы попробовал апдейтить пачками по диапазонам ПК зы ТС мониторил, какого ресурса не хватает серверу? зызы при таких объемах надо сначала на кошечках тренироваться ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2020, 10:30 |
|
update всей таблицы в 40гб
|
|||
---|---|---|---|
#18+
miksoft Алексей Роза INSERT через COPY postgres COPY FROM а его наверное в MySQL нету... там LOAD DATA INFILE есть ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2020, 11:49 |
|
|
start [/forum/topic.php?fid=47&fpage=22&tid=1828612]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 133ms |
0 / 0 |