开发者社区> 白及88> 正文

mysql 数据库导入导出

简介: <h1 class="postTitle" style="font-weight:normal; margin:10px 0px; padding:0px; border-bottom-width:1px; border-bottom-style:solid; border-bottom-color:rgb(221,221,221); font-family:verdana,Arial,H
+关注继续查看

mysql 数据库导入导出
1.关掉binlog,
2.所有要导入的表改为myisam
3.修改max_allowed_package ,多大根据你的实际情况
因为你已经dump好了,所以这些mysqldump的参数就改不了,记得有个批量插入的参数
根据我的经历,你的7G数据导入时间缩短不止一半,30分钟以内搞定


使用下面的命令
select  .. into outfile
load data infile
关闭binlog
再调整
max_allowed_packet
innodb_autoinc_lock_mode=2
bulk_insert_buffer_size
innodb_log_buffer_size=8M
innodb_buffer_pool_size
innodb_log_file_size
这些参数,会很快的,2000W的表(2.5g的文本数据文件),普通服务器,3-5分钟搞定
另外,记得在select into outfile的时候按照主键排序导出,否则,如果数据无序,会很慢,慢得可能不止一个数据量级 

c:\>mysql -h localhost -u root -p mydb2 < e:\mysql\mydb2.sql  

MYSQL快速导入本地数据

MYSQL提供了从本地文件快速导数据的命令,具体说明如下:

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [CHARACTER SET charset_name]
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]
    [IGNORE number LINES]
    [(col_name_or_user_var,...)]
    [SET col_name = expr,...]

实验:导入233M文件的数据

表结构如下:

mysql> SHOW COLUMNS FROM load_file_test;
+-------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| mid | int(10) | YES | | NULL | |
| time | int(10) | YES | | NULL | |
| type | tinyint(4) | YES | | NULL | |
+-------+------------+------+-----+---------+-------+
3 rows in set (0.12 sec)

文件数据格式:

1450025|2|1343145600
1586865|1|1343145600
2557075|2|1343145600
2663240|2|1343145600
3787375|2|1343145600
4293640|1|1343145600

执行结果:

mysql> LOAD DATA LOCAL INFILE '/usr/local/wwwroot/texas/fansPrizeData/2012-12' INTO TABLE load_file_test FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n' (mid,type,time);
Query OK, 11116864 rows affected (2 min 25.11 sec)
Records: 11116864 Deleted: 0 Skipped: 0 Warnings: 0

 

二百多兆的数据,大概花了两分半钟,还算是比较快的。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【MySQL学习笔记】系列一:数据库概述、初识关系型数据库MySQL(二)
【MySQL学习笔记】系列一:数据库概述、初识关系型数据库MySQL(二)
9933 0
【MySQL学习笔记】系列一:数据库概述、初识关系型数据库MySQL(一)
【MySQL学习笔记】系列一:数据库概述、初识关系型数据库MySQL(一)
57 0
【MySQL进阶】数据库与表的创建和管理(二)
【MySQL进阶】数据库与表的创建和管理(二)
12 0
【MySQL进阶】数据库与表的创建和管理(一)
【MySQL进阶】数据库与表的创建和管理(一)
20 0
MySQL数据库————数据库语言(DDL与DML)(二)
MySQL数据库————数据库语言(DDL与DML)(二)
12 0
MySQL数据库————数据库语言(DDL与DML)(一)
MySQL数据库————数据库语言(DDL与DML)(一)
43 0
【Mysql系列】——详细剖析数据库中的存储引擎
存储引擎是数据库中非常关键的部分,它就像是飞机、火箭中的引擎那样。我们能不能把飞机上的存储引擎发到火箭上去呢? 显然是不可能的,因为引擎的使用是要看使用的场景的。而在Mysql中,存储引擎也是一样的,其没有好坏之分。我们需要在合适的场景下使用合适的存储引擎才是我们需要做到位的。存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可以被称为表类型。
36 0
Node.js:knex.js数据库MySQL query builder
Node.js:knex.js数据库MySQL query builder
28 0
【MySQL】为什么MySQL 数据库内部使用的字符集是 ASCII 码?底层原理是什么?
【MySQL】为什么MySQL 数据库内部使用的字符集是 ASCII 码?底层原理是什么?
63 0
数据库 mysql 优化一 听说发第二遍全网程序员都不会单身 下
数据库 mysql 优化一 听说发第二遍全网程序员都不会单身 下
54 0
+关注
白及88
白及
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
高效MySQL的N个习惯
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关镜像