mysqldump备份恢复详解:掌握高效导入导出技巧

创始人
2024-12-17 04:35:57
0 次浏览
0 评论

mysqldump默认一行insert最多加多少行

默认情况下,使用mysqldump备份的表记录都在一条insert语句中,导入起来效率比较高,但是,当遇到记录较多的大表时,可能会超出缓存区的大小,可以使用参数来进行。
强制一条记录和一条插入语句,例如:mysqldump-uroot-p--skip-optdbname>bak.sql

mysql中备份和还原数据库的语句什么啊

mysqldump备份恢复详解及mysqldump导入导出说明mysqldump备份:mysqldump-u用户名-p密码-h主机数据库a-w"sqlstatus"-lock-all-tables>pathcase:mysqldump-uroot-p1234-hlocalhostdb1a-w"idin(selectidfromb)"--lock-all-tables>c:\aa.txtmysqldump恢复:mysqldump-u用户名-p密码-h主机数据库<路径情况:mysql-uroot-p1234db1pathmysqldump-uroot-p1234dbnamea--where"tag="88'"--no-create-info>c:\a.sqlmmysqldump导入方式:mysqldump-u用户名-p密码-h主机数据库<路径case:mysql-uroot-p1234db1值可以是ansi、mysql323、mysql40、postgresql、Oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options等。
要使用多个值,请用逗号分隔它们。
当然,不保证完全兼容,但力求兼容。
--complete-insert,-c使用完整的INSERT方法导出数据,包括字段名称,即将所有值写入一行。
这样做可能会提高插入效率,但可能会受到max_allowed_pa​​cket参数的影响而导致插入失败。
因此,这个参数需要谨慎使用,至少我不推荐使用。
--default-character-set=charset指定导出数据时使用的字符集。
如果数据表不使用默认的latin1字符集,导出时使用该选项必须指定,否则导入数据后会产生乱码。
再次。
--disable-keysmysqldump在INSERT语句的开头和结尾添加/*!40000ALTERTABLEtableDISABLEKEYS*/;和/*!40000ALTERTABLEtableENABLEKEYS*/;add语句可以大大提高insert语句的速度,一旦插入数据,只需重建索引即可。
该选项仅适用于MyISAM表。
--expand-insert=true|false默认情况下,mysqldump开启--complete-insert模式,因此如果您不想使用它,只需使用此选项并将其值设置为false即可。
--hex-blob使用十六进制格式导出二进制字符串字段。
如果数据是二进制的,则应使用此选项。
受影响的字段类型为BINARY、VARBINARY和BLOB。
--lock-all-tables,-x在开始导出之前,提交请求锁定所有数据库中的所有表,以确保数据一致性。
这是全局读锁,并且--single-transaction和--lock-tables选项会自动关闭。
--lock-tables与--lock-all-tables相同,但它锁定当前导出的数据表,而不是一次锁定数据库中的所有表。
该选项仅适用于MyISAM表,如果是innodb表,可以使用--single-transaction选项。
--no-create-info,-t只导出数据,不添加create语句。
--no-data,-d不导出任何数据,仅导出数据库表结构。
--opt这只是一个快速选项,相当于添加--add-drop-tables--add-locking--create-option--disable-keys--extended-insert--lock-tables--quick--同时设置-charset选项。
它该选项允许mysqldump快速导出数据,并且导出的数据可以快速导回。
该选项默认启用,但可以使用--skip-opt禁用。
请注意,如果运行mysqldump时未指定--quick或--opt选项,则整个结果集将保留在内存中。
如果导出大型数据库,可能会出现问题。
--quick,-q这个选项在导出大表时很有用,它强制mysqldump从服务器查询记录并获取所有记录并直接输出,而不是将它们缓存在内存中。
--routines,-r导出存储过程和自定义函数。
--single-transaction该选项在导出数据之前提交一个BEGINSQL语句,BEGIN不会阻塞任何应用程序,并且可以保证导出过程中数据库状态的一致。
它仅适用于InnoDB和BDB等事务表。
此选项和​​--lock-tables选项是互斥的,因为除非隐式提交事务,否则LOCKTABLES将导致任何类型的挂起。
要导出大表,必须结合使用--quick选项。
--triggers还导出触发器。
该选项默认启用,使用--skip-triggers禁用它。
其他参数详细请参考说明书。
我通常使用以下SQL来备份MyISAM表:/usr/local/mysql/bin/mysqldump-uyejr-pyejr"--default-character-set=utf8--opt--expand-insert=false"--triggers-r--hex-blob-xdb_name>innodb表的db_name.sql使用以下SQL进行备份:/usr/local/mysql/bin/mysqldump-uyejr-pyejr"--default-character-set=utf8--opt--extended-insert=false"--trigger-R--hex-blob--cngle-transactiondb_name>db_name.sql另外,如果想要获得在线备份,还可以使用--master-data参数,如下:/usr/local/mysql/bin/mysqldump-uyejr-pyejr"--default-character-set=utf8--opt--master-data=1"--single-transaction--flush-logsdb_name>db_name.sql这个最初只请求锁定的表,然后刷新binlog,然后在导出的文件中添加一条CHANGEMASTER语句来指定当前备份binlog位置,如果你想要这样如果你想恢复slave中的文件,可以使用这个方法。
1.2用mysqldump恢复备份文件是一个SQL脚本,可以直接插入。
导入数据有两种方法。
直接使用MySQL客户端,例如:/usr/local/mysql/bin/mysql-uyejr-pyejrdb_namemysql客户端提供的函数,例如:SOURCE/tmp/db_name.sql;这里需要指定文件的完整路径,并且它必须是运行mysqld的用户(例如nobody)有权限读取的文件。
热门文章
1
Python编程入门:全面解析Pytho... python的基本语法基本的Python语法如下:1.变量的定义。在编程语言中,...

2
Python字典操作全解析:添加、修改、... &#65279;Pythondict字典基本操作(包括添加、修改、删除键...

3
Python错误处理与异常处理:构建稳定... 2.5错误处理与异常在编程领域,错误处理和异常处理是保证程序稳定性和健壮性的关键...

4
Python数据转换攻略:字符串、列表、... Python字典、字符串及列表的相互转换Python中数据转换的艺术:从字典和字...

5
Python列表相加与求和技巧解析 重温python基础:列表相加的方法(两个list[]加法)今天,我们来看看Py...

6
Python运行快捷键大揭秘:高效操作,... python运行按哪个键运行Python时的快捷键包括Ctrl+Shift+F1...

7
Python字符与数字互转攻略:轻松掌握... python&#160;字符与数字如何转换Python是一种功能强大且结...

8
Python字符串转列表:两种常用方法解... python怎么将字符串转换为列表Python中将字符串转换为列表的方法有多种,...

9
Python字符串转列表:两种常用方法解... python怎么将字符串转换为列表在Python中将字符串转换为列表的方法有很多...

10
Python列表转字符串全攻略:掌握四种... Python列表到字符串–如何在Python中转换列表在Python中,将列表转...