导入数据库MySQL的最快方式

时间:2015-09-24 12:53:17

标签: mysql database import mariadb

我正在寻找导入数据库的最快方法。问题是我使用mysqldump导出数据库。我的数据库在磁盘上超过2 GB。

mysqldump非常快,但导入需要很长时间。有没有快速导入数据库的方法?

我们尝试实现热备份,但MySQL没有加载。有没有选择如何快速导出导入?这是数据文件夹中数据库文件的简单副本吗?

信息服务器: 操作系统:MS Windows Server 2008
MySQL服务器:MySQL 5.5或MariaDB
表类型:InnoDB(如果是MariaDB - InnoDB插件)

3 个答案:

答案 0 :(得分:3)

是的,可以将InnoDB文件从一台服务器复制到另一台服务器。如果每张桌子都有" innodb文件"启用后,它会变得更容易。按照manual中的说明操作:

  
      
  1. 在源服务器上,创建一个表(如果尚不存在):

         

    的MySQL>使用测试;
      MySQL的> CREATE TABLE t(c1 INT)engine = InnoDB;

  2.   
  3. 在目标服务器上,创建一个表(如果不存在):

         

    的MySQL>使用测试;
      MySQL的> CREATE TABLE t(c1 INT)engine = InnoDB;

  4.   
  5. 在目标服务器上,放弃现有的表空间。 (之前   可以导入表空间,InnoDB必须丢弃表空间   附在接收表上。)

         

    的MySQL> ALTER TABLE t DISCARD TABLESPACE;

  6.   
  7. 在源服务器上,运行FLUSH TABLES ... FOR EXPORT以停止   表并创建.cfg元数据文件:

         

    的MySQL>使用测试;
      MySQL的> FLUSH TABLES T FOR EXPORT;

         

    元数据(.cfg)文件在InnoDB数据目录中创建。注意

         
        

    FLUSH TABLES ... FOR EXPORT从MySQL 5.6.6开始提供。该     语句确保已刷新对命名表的更改     磁盘,以便在服务器时可以创建二进制表副本     运行。当FLUSH TABLES ... FOR EXPORT运行时,InnoDB产生一个     .cfg文件与表的数据库目录相同。 .cfg文件     包含导入时用于模式验证的元数据     表空间文件。

      
  8.   
  9. 将.ibd文件和.cfg元数据文件从源服务器复制到   目标服务器。例如:

         

    壳> scp /path/to/datadir/test/t.{ibd,cfg}   目的地服务器:/路径/到/ DATADIR /测试

         
        

    请注意

             

    在释放共享之前,必须复制.ibd文件和.cfg文件     锁定,如下一步所述。

      
  10.   
  11. 在源服务器上,使用UNLOCK TABLES释放获取的锁   通过FLUSH TABLES ...出口:

         

    的MySQL>使用测试;
      MySQL的>解锁表格;

  12.   
  13. 在目标服务器上,导入表空间:

         

    的MySQL>使用测试;   MySQL的> ALTER TABLE t IMPORT TABLESPACE;

         
        

    请注意

             

    ALTER TABLE ... IMPORT TABLESPACE功能不强制执行外部操作     对导入数据的关键约束。如果有外键约束     在表之间,所有表都应该以相同的方式导出(逻辑)     时间点。在这种情况下,您将停止更新表,提交     所有事务,获取表上的共享锁,然后执行     出口业务。

      
  14.   

答案 1 :(得分:1)

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

  1. max_allowed_pa​​cket = 1024M
  2. innodb_buffer_pool_size = 4G
  3. 导入时间显着减少。

答案 2 :(得分:0)

我希望我觉得对你很有帮助...尝试使用IMPORT 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编辑器软件