Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / update всей таблицы в 40гб / 10 сообщений из 10, страница 1 из 1
24.04.2020, 18:13
    #39951128
mumuskul
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update всей таблицы в 40гб
есть mariadb 10.3
и есть большая таблица в 40гб
Код: sql
1.
id int, value1 int, value2 int

в innodb. Индекс есть составной
нужно сделать простой апдейт
Код: sql
1.
update table set value1 = value1-value2

на рабочей таблице

Что нужно что бы ускорить этот процесс? а то уже часа 3 выполняется. Может какой конфиг надо прописать, может ресурса какого-то не хватает. Диски ссд, рейд 1, 64 оперативы
...
Рейтинг: 0 / 0
24.04.2020, 19:09
    #39951158
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update всей таблицы в 40гб
Так это ж фуллскан... не, никак такое не ускорить.
...
Рейтинг: 0 / 0
24.04.2020, 19:11
    #39951159
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update всей таблицы в 40гб
mumuskul
Индекс есть составной
Если индекс включает в себя поле value1, то он даже мешает.
Вероятно, будет быстрее, если его сначала дропнуть, а потом пересоздать.
...
Рейтинг: 0 / 0
24.04.2020, 19:51
    #39951169
mumuskul
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update всей таблицы в 40гб
Akina
Так это ж фуллскан... не, никак такое не ускорить.

Я понимаю, ну может настройки какие-то, буфер там какой-то увеличить, или еще что-то? А то я не очень разбираюсь,
стоит только
innodb_buffer_pool_size = 32G
innodb_log_file_size = 512MB
miksoft
mumuskul
Индекс есть составной
Если индекс включает в себя поле value1, то он даже мешает.
Вероятно, будет быстрее, если его сначала дропнуть, а потом пересоздать.

Таблица рабочая, не вариант. Разве что создавать новую таблицу, и скопировать туда данные измененные, а потом создать индекс и переименовывать таблицу. Но я хз, насколько это правильно.

Просто еще момент, что это не разовая операция, а раз в месяц бы такое делать.
...
Рейтинг: 0 / 0
24.04.2020, 22:11
    #39951193
update всей таблицы в 40гб
индекс надо дропать по-любому
потом заново создавать
а сколько займёт вытащить 40гб в файл(ы) через COPY ? (большие файлы НЕ надо делать, это опять тормознёт)
так то INSERT через COPY быстрее работает... (опять же БЕЗ индексов)
...
Рейтинг: 0 / 0
24.04.2020, 23:20
    #39951217
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update всей таблицы в 40гб
Алексей Роза
INSERT через COPY
что это за зверь?
...
Рейтинг: 0 / 0
25.04.2020, 07:48
    #39951262
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update всей таблицы в 40гб
Странно. Если раз в месяц вычитать

Value1=value1-value2

То тут должна быть какая-то арифметическая оптимизация. Вьюшку создать. Или триггер.

Ну вобщем сделать так чтоб операция вычитания была по максимуму отложенной.

Вам же не все 40 Гб сразу нужны вычтенными?
...
Рейтинг: 0 / 0
25.04.2020, 10:30
    #39951278
Дегтярев Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update всей таблицы в 40гб
авторВероятно, будет быстрее, если его сначала дропнуть, а потом пересоздать.
если мария умеет это делать без пересоздания таблицы то возможно это вариант, хотя ТС сказал что не вариант, с другой стороны изменения такого объема должны быть регламентными без пользователей

если не обязательно делать изменение в одной транзакции - я бы попробовал апдейтить пачками по диапазонам ПК

зы
ТС мониторил, какого ресурса не хватает серверу?

зызы
при таких объемах надо сначала на кошечках тренироваться
...
Рейтинг: 0 / 0
25.04.2020, 11:49
    #39951292
update всей таблицы в 40гб
miksoft
Алексей Роза
INSERT через COPY
что это за зверь?

postgres COPY FROM
а его наверное в MySQL нету...
там LOAD DATA INFILE есть
...
Рейтинг: 0 / 0
25.04.2020, 21:00
    #39951478
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update всей таблицы в 40гб
mumuskul
Таблица рабочая, не вариант.
Почему не вариант?
Делать выборку с фильтрацией по полю value1 во время запроса все равно лучше не стоит. А для других выборок удаление индекса не помешает.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / update всей таблицы в 40гб / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]