一般的数据备份用 :mysql路径+bin/mysqldump -u 用户名 -p 数据库名 >导出的文件名
数据还原是:到mysql命令行下面,用:source 文件名的方法。
但是这种方法对大数据量的表进行 *** 作就非常慢。因为他不仅导出了数据还导出了表结构。
在针对大数据量的表时,我们可以用infile和 outfile来 *** 作。
outfile导出数据库数据的用法:
下图我们可以看到6百多万数据35秒就搞定了:
下面我们看看infile的语法:
在infile导入数据的时候,我们还可以做一些优化。我们可以用
alter table table_name disable keys 关闭普通索引。等数据导入玩,再用:
alter table table_name enable keys 来开启普通索引。这样就不会边导入数据,边整理索引的二叉树儿影响导数据的效率。
如果可以保证 数据的正确性,我们可以将表的唯一索引也关闭,之后再开启,不是每条数据就算是唯一的他都要去检测一遍。命令:
set unique_checks=0 #关闭唯一校验
set unique_checks=1#开启唯一校验
如果是InnoDB存储引擎,我们还可以set auto commit=0关闭自动提交,来提高效率。InnoDB是按主键的顺序保存的,我们将其主键顺序排列也可以提高效率。
下面我们对myisam引擎的表做个测试,我们先不关索引,导入数据(用了近4分钟):
然后我们先把索引关闭试试(只用了一分钟多一点,快了不少啊!摸摸大!):
source 命令导入1
连接进入数据库
windows : 开始菜单->运行cmd
linux : 如果没有配置环境变量, 则到mysql 的bin 目录中去
2
输入: mysql -u root -p 回车 进入数据库
3
使用库/创建库 譬如数据库名字为:testdb
如果数据库存在, 则 use testdb
如果数据库不存在, 则创建 create database testdb 然后在 use testdb
4
将你要导入的数据库文件 *.sql 放到 D或者任意方便输入的位置, 我放置到了D盘的根目录下
然后输入命令: source d:/testdb.sql 回车,会看到如图的
END
mysqldump命令
1
进入到命令行模式。步骤直接同上第一步。
直接输入: mysqldump -u root -p testdb <d:/testdb.sql 然后回车
2
会提示输入密码: 直接输入密码,回车搞定!
END
工具导入
1
我们常用的mysql工具有 phpmyadmin sqllog navcat 等。 工具导入的方式就以 sqllog 为例,
第一步新建数据库: 输入数据库名, 注意字符集和编码
2
右键数据库, “导入”->"执行SQL脚本" 然后选择数据库。 点击确定即可
3
点击“执行”, 可能会d出一个对话框,直接忽略,点击“确定”就可以了
步骤阅读
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)