1.用mysqldump对MySQL数据库进行数据备份与恢复  
下面假设要备份tm这个数据库:
Shell>mysqldump -uroot –p123456 tm > tm_050519.sql
这时可以利用gzip压缩数据,命令如下:
Shell>mysqldump -uroot -p123456 tm | gzip > tm_050519.sql.gz
恢复数据:
Shell>mysql -uroot -p123456 tm < tm_050519.sql
从压缩文件直接恢复:
Shell>gzip -d < tm_050519.sql.gz | mysql -uroot -p123456 tm

2.关于使用mysqldump的一些参数选项
(1)直接使用mysqldump -uroot -pxxxx tetratest > "d:\data1.sql"
导出数据时,没有建库语句,这时你可以手动创建一个库,然后使用:
mysql -uroot -pabcd mydatabase < "d:\data1.sql",即将一个数据库“复制”到一个不同名称的数据库下。同时,这种情况下,存储过程及函数并没有转储到文件中。
(2)如果你未使用--quick或者--opt选项,那么mysqldump将在转储结果之前把全部内容载入到内存中。这在你转储大数据量的数据库时将会有些问题。该选项默认是打开的,但可以使用--skip-opt来关闭它。
(3)使用--skip-comments可以去掉导出文件中的注释语句
(4)使用--compact选项可以只输出最重要的语句,而不输出注释及删除表语句等等
(5)使用--database或-B选项,可以转储多个数据库,在这个选项名后的参数都被认定为数据库名
mysqldump -uroot -paaa --database db1 db2 >"d:\mydata.sql"。同时,使用该参数会使用导出文件中增加创建库的语句。如不带该选项,则第二个参数将被认定为表名,即:mysqldump -uroot -paaa my1 mytable1 >"d:\mydata.sql",将导出表mytable1的结构及数据。
(6)--tables ,在此选项之后的参数都被认定为表名。
(7)--no-create-db
(8)--no-create-info
(9)--no-data
(10)--routines, -R 将使存储过程、函数也转储到文件中来。
(11)-h或--help 可以查看有哪些选项可用。
(12)--opt 如果你正将数据移动到更新版本的MySQL,你应当使用mysqldump --opt来利用各种优化性能来产生更小、可以更快处理的转储文件
(更多请参考MySQL手册)

3.MySQL中的临时表及HEAP表
给正常的CREATE TABLE语句加上TEMPORARY关键字:
CREATE TEMPORARY TABLE tmp_table (
name VARCHAR(10) NOT NULL,
value INTEGER NOT NULL
)

临时表将在你连接MySQL期间存在。当你断开时,MySQL将自动删除表并释放所用的空间。当然你可以在仍然连接的时候删除表并释放空间。
DROP TABLE tmp_table
如果你声明临时表是一个HEAP表,MySQL也允许你指定在内存中创建它:
CREATE TEMPORARY TABLE tmp_table (
name VARCHAR(10) NOT NULL,
value INTEGER NOT NULL
) TYPE = HEAP

HEAP表格使用一个哈希索引并且存储在内存中,这使他们更快,但是如果MySQL崩溃,你将失去所有存储的数据。HEAP作为临时表很可用!
当你使用HEAP表时,这里是你应该考虑的一些事情:
你应该总是在CREATE语句中指定MAX_ROWS以保证你有意不使用所有的内存。
索引将只能与与=和<=>一起使用(但是很快)。
HEAP表使用一个固定的记录长度格式。
HEAP不支持BLOB/TEXT列。
HEAP不支持AUTO_INCREMENT列。
HEAP不支持在一个NULL列上的索引。
你可以在一个HEAP表中有非唯一键(哈希表一般不这样)。
HEAP表格在所有的客户之间被共享(就象任何其他的表)。
HEAP表的数据以小块分配。表是100%动态的(在插入时),无需溢出区和额外的键空间。删除的行放入一个链接表并且当你把新数据插入到表时,它将被再次使用。
为了释放内存,你应该执行DELETE FROM heap_table或DROP TABLE heap_table。
为了保证你不会偶然做些愚蠢的事情,你不能创建比max_heap_table_size大的HEAP表。

MYSQL的MYSQLDUMP命令的更多相关文章

  1. Mysql中mysqldump命令使用详解

    MySQL有很多可以导入数据的方法,然而这些只是数据传输中的一半,另外的一般是从MySQL数据库中导出数据.有许多的原因我们需要导出数据.一个重要的原因是用于备份数据库.数据的造价常常是昂贵的,需要谨 ...

  2. MySQL操作mysqldump命令详解

    --all-databases , -A导出全部数据库. --all-tablespaces , -Y导出全部表空间. --no-tablespaces , -y不导出任何表空间信息. --add-d ...

  3. 使用MySQL的mysqldump命令备份数据库和把数据库备份文件恢复

    1,备份数据库 mysql -uroot -p123456 db_name > /root/db_name.dump 2,数据库备份文件恢复 mysql -uroot -p123456 db_n ...

  4. Mysql使用mysqldump按时间导出时的一个注意事项

    在使用Mysql的mysqldump命令按时间进行数据导出时,我们可能会遇到导出数据与原库中不符或者导出数据和我们期望的数据不同的情况. 我们知道Mysql数据库导出可以使用命令mysqldump,使 ...

  5. mysql在Windows下使用mysqldump命令备份数据库

    在cmd窗口中使用mysqldump命令首先需要配置环境变量 1,在计算机中找到MySQL的安装位置,找到MySQL Workbench,比如我的是C:\Program Files\MySQL\MyS ...

  6. 【MySQL】mysql在Windows下使用mysqldump命令备份数据库

    在cmd窗口中使用mysqldump命令首先需要配置环境变量 1,在计算机中找到MySQL的安装位置,找到MySQL Workbench,比如我的是C:\Program Files\MySQL\MyS ...

  7. mysql的导入导出工具mysqldump命令详解

    导出要用到MySQL的mysqldump工具,基本用法是: shell> mysqldump [OPTIONS] database [tables] 如果你不给定任何表,整个数据库将被导出. 通 ...

  8. 使用mysqldump命令备份恢复MySQL数据库

    1.各种用法说明 A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dump file] 上述命令将指定数据库备份到某dump文 ...

  9. mysql命令、mysqldump命令找不到解决

    1.解决bash: mysql: command not found 的方法 [root@DB-02 ~]# mysql -u root -bash: mysql: command not found ...

随机推荐

  1. zend studio 13.6.1汉化包安装方法

    1.这里介绍的是离线汉化包的安装,在线汉化安装总是失败,还是离线的方便 2.汉化安装过程中系统可能会弹出报错,忽略就可以(反正我现在就是忽略了在用着) 下面图片中的链接就是在线安装的链接,不管是在线还 ...

  2. 【转】BSON数据格式

    原文:https://www.e-learn.cn/content/qita/1999197 ----------------------------------------------------- ...

  3. 数组的新方法 forEach some filter findIndex

    forEach  some  filter  findIndex这些都属于数组的新方法,都会对数组中的每一项,进行遍历,执行相关的操作: 只不过在循环的时候有些不一样 参考资料:https://wan ...

  4. jQuery——jQuery对象与DOM对象

    1.jQuery对象与DOM对象的区别 通过jQuery方法包装后的对象,是一个类数组对象.它与DOM对象完全不同,唯一相似的是它们都能操作DOM. 通过jQuery处理DOM的操作,可以让开发者更专 ...

  5. c++对c的扩展----什么时候分配内存

    const分配内存的时机,编译器编译的时候分配内存 const相当于宏,用来取代c语言的#define #include<iostream> using namespace std; vo ...

  6. 总结 1121 Java面向对象

    总结 Java面向对象的基础 三大特征: 封装(抽象),继承,多态 面向对象的内存分析: 栈, 堆, 代码区, 静态区 this: 代表当前对象本身 有时候需要把当前调用对象进行传递,那么就可以使用t ...

  7. python自动华 (九)

    Python自动化 [第九篇]:Python基础-线程.进程及python GIL全局解释器锁 本节内容: 进程与线程区别 线程 a)  语法 b)  join c)  线程锁之Lock\Rlock\ ...

  8. java中vector中add,addElement区别

    这两个方法最大的区别就是返回值不一样,在作用上基本没有区别. add是实现List接口重写的方法,返回值为boolean.addElement是Vector类中的特有方法,返回值是void.

  9. git error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version

    原因:git 版本过低 解决方法:卸载旧版本,重装新版本

  10. 百度ueditor中复制word图文时图片转存任然保持灰色不可用

    官网地址http://ueditor.baidu.com Git 地址 https://github.com/fex-team/ueditor 参考博客地址 http://blog.ncmem.com ...