Правило 80-20 говорит, что самые маленькие 80% таблиц, вероятно, будут занимать только 20% пространства.Так что для них есть один mysqldump.
Затем для каждой оставшейся таблицы, занимающей меньше 20% пространства, будет больше mysqldump (s).
Наконец, для любых больших таблиц требуется упомянутая опция --where
по Nambu14.Или вы можете попробовать толчок сказать --where="true LIMIT 20000,10000"
, чтобы подкрасться OFFSET
и LIMIT
дюйма (см. Один из комментариев на https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html) Но при этом не разрешайте записи в таблицу - это может привести к дополнительным / пропущенным записям.
Или вы можете адаптировать методы разбиения на блоки, как обсуждено здесь .Это позволяет избежать лишних / пропущенных проблем и избежать клуджа LIMIT
.Если повезет, вы можете жестко закодировать значения диапазона, необходимые для таких диапазонов, как этот --where="my_pk >= 'def' AND my_pk < 'mno'"
Не забудьте разобраться с триггерами, хранимой процедурой, представлениями и т. Д.