Копировать/дублировать базу данных без использования mysqldump
Вы можете продублировать mysql-server таблицу без данных, запустив:
CREATE TABLE x LIKE y;
(см. документы mysql-if MySQL CREATE TABLE)
Вы можете написать сценарий, который mysql-if берет выходные данные SHOW TABLES
из mysql-query одной базы данных и копирует mysql-server схему в другую. Вы должны mysqlsh иметь возможность ссылаться mysql-server на имена схем+таблиц, например:
CREATE TABLE x LIKE other_db.y;
Что mysqlclient касается данных, вы также mysqld можете сделать это в MySQL, но mysql это не обязательно быстро. После mysqldump того, как вы создали ссылки, вы mysql-table можете запустить следующее, чтобы my-sql скопировать данные:
INSERT INTO x SELECT * FROM other_db.y;
Если вы mysqld используете MyISAM, вам лучше mysqldump скопировать файлы таблицы; это mysqldump будет намного быстрее. Вы mysqld сможете сделать то же самое, если mysql-table используете INNODB с per table table spaces.
Если mysqlclient вы в конечном итоге сделаете mysqldump INSERT INTO SELECT
, не забудьте временно turn off indexes с mysqld ALTER TABLE x DISABLE KEYS
!
EDIT Maatkit также содержит несколько mysql-query скриптов, которые могут быть mysqlsh полезны для синхронизации mysql-table данных. Это может быть не mysql-if быстрее, но вы, вероятно, могли mysql-server бы запускать их сценарии mysql-query синхронизации с оперативными mysql-server данными без особой блокировки.
mysql
Копировать/дублировать базу данных без использования mysqldump
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.