powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Удаление данных из таблицы без блокировки
4 сообщений из 4, страница 1 из 1
Удаление данных из таблицы без блокировки
    #39687636
denis111111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Есть такая задача:

Есть таблица в которую все время пишутся и читаются данные без остановки.

Через некоторые время размер таблицы превышает норму и есть необходимость ее чистить.

Мы делаем дамп:

mysqldump -h $HOST -u $USER_NAME -p$PASSWORD --compact --no-create-info --verbose -r $FILE_NAME $DB_NAME $TABLE_NAME 2>&1

А потом удаляем данные с нее:
DELETE FROM ${db.table.name} WHERE creation_date < NOW() - INTERVAL 30 DAY

Проблема в том, что таблица блочится через это где-то на 2-3 часа и сней нереально работать.

Другие процессы, которые пишут,читают данные с этой таблицы просто "висят". А это недопустимо в нашем случае.

Есть ли другой способ сделать дамп, удалить старые записи?
...
Рейтинг: 0 / 0
Удаление данных из таблицы без блокировки
    #39687643
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот нафига дампить всё? тупо переместите записи на удаление в другую таблицу и дампите только её. Более того, достаточно дампить чисто данные, структура-то известна.
Ну или партиционируйтесь по дате.
...
Рейтинг: 0 / 0
Удаление данных из таблицы без блокировки
    #39687658
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis111111,

какой storage engine?

mysqldump намеренно берёт блокировку на таблицу для гарантии консистентности снимка этой таблички. Если у вас транзакционный storage engine - то проверьте мануал, в частности описание --single-transaction
поведение delete зависит от storage engine. Куча бинарного мусора под названием myisam конечно берёт эксклюзивную блокировку на любые пишущие операции, транзакционный innodb - на отдельные строки.
...
Рейтинг: 0 / 0
Удаление данных из таблицы без блокировки
    #39687662
denis111111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkij,

Здесь innodb
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Удаление данных из таблицы без блокировки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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