|
|
|
Удаление данных из таблицы без блокировки
|
|||
|---|---|---|---|
|
#18+
Добрый день. Есть такая задача: Есть таблица в которую все время пишутся и читаются данные без остановки. Через некоторые время размер таблицы превышает норму и есть необходимость ее чистить. Мы делаем дамп: 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 часа и сней нереально работать. Другие процессы, которые пишут,читают данные с этой таблицы просто "висят". А это недопустимо в нашем случае. Есть ли другой способ сделать дамп, удалить старые записи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2018, 16:53 |
|
||
|
Удаление данных из таблицы без блокировки
|
|||
|---|---|---|---|
|
#18+
Вот нафига дампить всё? тупо переместите записи на удаление в другую таблицу и дампите только её. Более того, достаточно дампить чисто данные, структура-то известна. Ну или партиционируйтесь по дате. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2018, 16:59 |
|
||
|
Удаление данных из таблицы без блокировки
|
|||
|---|---|---|---|
|
#18+
denis111111, какой storage engine? mysqldump намеренно берёт блокировку на таблицу для гарантии консистентности снимка этой таблички. Если у вас транзакционный storage engine - то проверьте мануал, в частности описание --single-transaction поведение delete зависит от storage engine. Куча бинарного мусора под названием myisam конечно берёт эксклюзивную блокировку на любые пишущие операции, транзакционный innodb - на отдельные строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2018, 17:13 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39687643&tid=1829681]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 125ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...