Многие из вас конечно-же знают, что утилита mysqldump может сделать дамп таблицы или базы/баз, и зачастую пользуются ею для создания быкапов (резервных копий базы или таблиц).
Но что делать , если таблица имеет гигантские размеры (например как у меня >300Гб) и при этом нужно сохранить лиш некоторые её строки.
На помощь придет ключик —where= в паре с -n -t —skip-opt (последний срежет удаление и создание таблицы из дампа, что позволит избежать очень больших проблем ;))
Ближе к делу (приведу пример):
эта последовательность сделает дамп всех строк, m_time (время модификации) которых старше DATE(NOW()) начала сегодняшнего дня.
в where условия могут быть разнообразными , однако, следует помнить , что в bash-е выражения, заключенные в ` ковычки являются выполняемыми. 🙂
mysqldump -n -t --skip-opt --where="DATE(m_time)=DATE(NOW())"