mysql导出条数比UE少_MySQL数据的导入与导出

并行处理数据库和数据库中的对象,以加速转储过程

更好地控制要转储的数据库和数据库对象(表,存储程序,用户帐户)

将用户帐户转储为帐户管理语句(CREATE USER,GRANT)而不是作为插入mysql系统数据库

创建压缩输出的能力

进度指标(值是估计值)

对于转储文件重新加载,InnoDB通过在插入行之后添加索引来为表创建更快的二级索引

mysqlpump至少需要SELECT转储表的特权,SHOW VIEW转储视图,TRIGGER转储触发器以及未使用LOCK TABLES该--single-transaction选项的特权。转储用户定义需要系统数据库的SELECT权限mysql。某些选项可能需要其他权限,如选项说明中所述。

(1)单个数据库导出

语法:mysqlpump -h [ip] -P [port] -u [user_name] -p[password] db_name[tbl_name1 tbl_name2 ...] > file_path

(2)多个数据库导出

语法:mysqlpump -h [ip] -P [port] -u [user_name] -p[password] --databases db_name1 db_name2 ... > file_path

mysqlpump功能很强大还支持多种选项,具体选项可以查看官方文档

(3)将数据从一个MySQL服务器复制到另一个MySQL服务器

语法:mysqldump -h [ip] -P [port] -u [user_name] -p[password] --opt db_name | mysql -h [ip] -P [port] -u [user_name] -p[password] --compress db_name

--compress:压缩客户端和服务器之间发送的所有信息(如果可能)。从MySQL 8.0.18开始,不推荐使用此选项。它将在未来的MySQL版本中删除。

2.mysql执行sql文件

进入mysql客户端执行:source file_path 或 \. file_path命令。

3.mysql导入批量数据

LOAD DATA完整语法:

1ba810233d7ff3d2b7034728cfe289ab.png

LOW_PRIORITY:如果使用LOW_PRIORITY修饰符,则LOAD DATA语句的执行将延迟,直到没有其他客户端从表中读取。这会影响只使用表级锁只存储引擎(例如MyISAM,MEMORY和MERGE)。

CONCURRENT:如果使用满足并发插入条件CONCURRENT的MyISAM表指定修饰符(即,它在中间不包含空闲块),则其他线程可以在LOAD DATA执行时从表中检索数据。LOAD DATA即使没有其他线程同时使用该表,此修饰符也会影响位的性能。

LOCAL:如果LOCAL指定,则文件由客户端主机上的客户端程序读取并发送到服务器。该文件可以作为完整路径名提供,以指定其确切位置。如果以相对路径名的形式给出,则相对于启动客户端程序的目录解释名称。

如果LOCAL未指定,则文件必须位于服务器主机上,并由服务器直接读取。非LOCAL加载操作读取位于服务器上的文本文件。出于安全原因,此类操作要求您拥有该FILE权限。此外,非LOCAL加载操作受secure_file_priv系统变量设置的限制。如果变量值是非空目录名,则要加载的文件必须位于该目录中。如果变量值为空(这是不安全的),则文件只需要服务器可读。

file_name:文件路径,在Windows上,将路径名中的反斜杠指定为正斜杠或加倍反斜杠。

在REPLACE与IGNORE输入行的修饰处理控制复制唯一键值的现有行:

如果指定REPLACE,则输入行将替换现有行。换句话说,主键或唯一索引的值与现有行的值相同。

如果指定IGNORE,则会丢弃复制唯一键值上现有行的行。

如果未指定任何修饰符,则行为取决于是否LOCAL指定了修饰符。如果没有LOCAL,则在找到重复键值时会发生错误,并忽略文本文件的其余部分。使用时LOCAL,默认行为与IGNORE指定的相同;这是因为服务器无法在操作过程中停止传输文件。

PARTITION:LOAD DATA支持显式分区选择,使用PARTITION 带有一个或多个以逗号分隔的分区,子分区或两者的名称列表的选项。使用此选项时,如果文件中的任何行无法插入列表中指定的任何分区或子分区,则语句将失败,并显示错误“ 找到与给定分区集不匹配的行”。有关更多信息和示例。对于使用使用表锁的存储引擎的分区表,例如MyISAM, LOAD DATA无法修剪任何分区锁。这不适用于使用采用行级锁定的存储引擎的表,例如 InnoDB。

CHARACTER SET:服务器使用character_set_database系统变量指示的字符集来解释文件中的信息。SET NAMES并且设置character_set_client不影响输入的解释。如果输入文件的内容使用的字符集与默认值不同,通常最好使用该CHARACTER SET子句指定文件的字符集。

FIELDS:如果指定FIELDS子句,则每个子句(TERMINATED BY,[OPTIONALLY] ENCLOSED BY和ESCAPED BY)也是可选的,但必须至少指定其中一个子句。允许这些子句的参数仅包含ASCII字符。

TERMINATED BY:字段与字段之间的分隔符。

ENCLOSED BY:包裹字段的字符,仅用于从具有字符串数据类型。

ESCAPED BY:控制如何读取或写入特殊字符,即描述的转义字符。

LINES:

STARTING BY:如果所有输入行都有一个您想要忽略的公共前缀,则可以使用跳过前缀和前面的任何内容。如果一行不包含前缀,则跳过整行。

TERMINATED BY:每行与每行之间的分隔符。

IGNORE number:该选项可用于忽略文件开头的行.

col_name_or_user_var:默认情况下,如果在LOAD DATA语句末尾没有提供列列表,则输入行应包含每个表列的字段。如果只想加载某些表的列,请指定列列表。

SET子句:每个col_name_or_user_var值都是列名或用户变量。使用用户变量,该SET子句使您可以在将结果分配给列之前对其值执行预处理转换。

4.mysql导出批量数据

语法:SELECT [col_name [,col_name] ...] INTO OUTFILE 'file_path' [CHARACTER SET charset_name]

[{FIELDS | COLUMNS}

[TERMINATED BY 'string']

[[OPTIONALLY] ENCLOSED BY 'char']

[ESCAPED BY 'char']

]

[LINES

[STARTING BY 'string']

[TERMINATED BY 'string']

]

FROM table_name;

该SELECT ... INTO OUTFILE语句主要用于让您快速将表转储到服务器计算机上的文本文件中。如果要在服务器主机之外的其他主机上创建生成的文件,通常无法使用,SELECT ... INTO OUTFILE因为无法相对于服务器主机的文件系统写入文件的路径。

但是,如果MySQL客户端软件安装在远程计算机上,则可以使用客户端命令(例如在客户端主机上生成文件)。mysql -e "SELECT ..." > file_name

如果可以使用服务器文件系统上的网络映射路径访问远程主机上文件的位置,则还可以在服务器主机以外的其他主机上创建生成的文件。在这种情况下,目标主机上不需要存在mysql(或其他一些MySQL客户端程序)。

SELECT ... INTO OUTFILE是补充LOAD DATA。列值将写入转换为CHARACTER SET子句中指定的字符集。如果不存在此类子句,则使用binary字符集转储值。实际上,没有字符集转换。如果结果集包含多个字符集中的列,则输出数据文件也将如此,您可能无法正确重新加载文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值