powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / update всей таблицы в 40гб
10 сообщений из 10, страница 1 из 1
update всей таблицы в 40гб
    #39951128
mumuskul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть 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
update всей таблицы в 40гб
    #39951158
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так это ж фуллскан... не, никак такое не ускорить.
...
Рейтинг: 0 / 0
update всей таблицы в 40гб
    #39951159
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mumuskul
Индекс есть составной
Если индекс включает в себя поле value1, то он даже мешает.
Вероятно, будет быстрее, если его сначала дропнуть, а потом пересоздать.
...
Рейтинг: 0 / 0
update всей таблицы в 40гб
    #39951169
mumuskul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina
Так это ж фуллскан... не, никак такое не ускорить.

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

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

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

Value1=value1-value2

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

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

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

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

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

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

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


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