как да архивирате таблиците, а не изгледите

С помощта на mysqldump мога да архивирам моята база данни. Но моята база данни има много изгледи с огромно количество данни, които не ми трябват. Искам да архивирам само истинските таблици с данни.

В момента правя:

mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql

Има ли начин да архивирате само реалните таблици без изгледите?


person Ozkan    schedule 12.03.2014    source източник
comment
Изгледите не съдържат данни, таблиците съдържат. Архивът ще съдържа само данните за таблиците   -  person a_horse_with_no_name    schedule 12.03.2014


Отговори (1)


Изгледите не съхраняват никакви данни в MySQL. Изгледът е като съхранени заявки, а не съхранени данни. Няма съдържание в изгледа и това няма да увеличи размера на архива ви повече от размера на дефиницията на изгледа. Това означава, че операторът CREATE OR REPLACE VIEW е единственото нещо, което завършва във вашия изход на mysqldump, свързан с този изглед.

Но за да отговоря на въпроса ви: не, няма конкретна опция за изключване на всички изгледи.

Можете да изключите отделни имена (независимо дали са таблици или изгледи) с опцията --ignore-table=db.table. Но ще трябва да посочите всеки изглед поотделно.

Друг вариант е mysqldump с потребител, който няма SHOW VIEW привилегия. Това ще изключи изгледите от резервното копие, но ще генерира грешка. Можете да пропуснете грешки и да продължите архивирането, ако използвате опцията --force.

person Bill Karwin    schedule 12.03.2014