mariadb 导入数据库MySQL最快的方法

l7wslrjt  于 6个月前  发布在  Mysql
关注(0)|答案(3)|浏览(114)

我正在寻找最快的方法来导入数据库。问题是,我使用mysqldump导出数据库。我的数据库是超过2 GB的磁盘上。
mysqldump速度很快,但是导入时间很长。有没有快速导入数据库的方法?
我们试图实现热备份,但MySQL没有加载。有没有选项如何做一个快速的导出-导入?这是一个简单的复制数据文件夹中的数据库文件?
操作系统:MS Windows Server 2008
MySQL服务器:MySQL 5.5或MariaDB
表类型:InnoDB(如果MariaDB - InnoDB插件)

6kkfgxo0

6kkfgxo01#

是的,可以将InnoDB文件从一个服务器复制到另一个服务器。如果您启用了“每个表的innoDB文件”,这将非常容易。按照manual中的说明,您可以执行以下操作:
1.在源服务器上,创建一个表(如果不存在):
mysql>使用测试;
(c1 INT)引擎=InnoDB;(c1 INT)引擎=InnoDB;
1.在目标服务器上,创建一个表(如果不存在):
mysql>使用测试;
(c1 INT)引擎=InnoDB;(c1 INT)引擎=InnoDB;
1.在目标服务器上,放弃现有的表空间。(在导入表空间之前,InnoDB必须放弃附加到接收表的表空间。)
删除表空间;
1.在源服务器上,运行FLUSH TABLES... FOR EXPORT以停止表并创建.cfg元数据文件:
mysql>使用测试;
清空表以导出;
在InnoDB数据目录中创建元数据(.cfg)文件。
FLUSH TABLES... FOR EXPORT从MySQL 5.6.6开始提供。该语句确保对命名表的更改已刷新到磁盘,以便在服务器运行时可以制作二进制表副本。当FLUSH TABLES... FOR EXPORT运行时,InnoDB会在与表相同的数据库目录中生成一个.cfg文件。该.cfg文件包含在导入表空间文件。
1.将.ibd文件和.cfg元数据文件从源服务器复制到目标服务器。例如:
shell> scp /路径/到/数据目录/测试/t。{ibd,cfg}目标服务器:/路径/到/数据目录/测试
注意
在释放共享锁之前,必须复制.ibd文件和.cfg文件,如下一步骤所述。
1.在源服务器上,使用UNLOCK TABLES释放由FLUSH TABLES... FOR EXPORT获取的锁:
mysql>使用测试;
mysql>解锁表;
1.在目标服务器上,导入表空间:
使用测试;更改表;导入表空间;
注意
ALTER TABLE... IMPORT TABLESPACE功能不会在汇入的数据上胁迫执行外部索引键条件约束。如果表格之间有外部索引键条件约束,则所有表格都应该在相同(逻辑)时间点汇出。在这种情况下,您应该停止更新表格、确认所有交易、取得表格的共用锁定,然后执行汇出作业。

7rtdyuoh

7rtdyuoh2#

我在导入数据时遇到了同样的问题,在调整了以下参数后:

  1. max_allowed_packet = 1024M
  2. innodb_buffer_pool_size = 4G
    进口时间大幅缩短。
pftdvrlh

pftdvrlh3#

我希望我认为对你有帮助.尝试导入CSV文件加载数据库的简单方法。
举例来说,您可以:

LOAD DATA LOCAL INFILE 'path/caption.csv'
INTO TABLE caption
FIELDS TERMINATED BY ','
    ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(id, name)

字符串
你可以使用这个软件:
HeidiSQL SQL Editors软件

相关问题