mysql中向空表load数据

mysql中向空表load数据,第1张

1、导入.sql文件命令:mysql>USE 数据名mysql>source d:/mysql.sql

2、建立数据库:mysql>CREATE DATABASE 库名

3、建立数据表:mysql>USE 库名mysql>CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1))

4、删除数据库:mysql>DROP DATABASE 库名

5、删除数据表:mysql>DROP TABLE 表名;

6、将表中记录清空:mysql>DELETE FROM 表名

7、往表中插入记录:mysql>INSERT INTO 表名 VALUES ("hyq","M")

8、更新表中数据:mysql->UPDATE 表名 SET 字段名1='a',字段名2='b' WHERE 字段名3='c'

9、用文本方式将数据装入数据表中:mysql>load data local infile "d:/mysql.txt" into table 表名

"1.?load-analysis-num

GreatDB用于处理一条?load?data?请求数据包解析的工作线程数。

全局参数。可以动态修改

默认值?=?3。参数值范围?>=1

注意:

当load?data导入数据的瓶颈在dbscale解析数据包处时,调大该参数可以显著提高load?data的性能。但当该值大于1时,数据实际导入后端?mysql?的顺序将可能与文件中的顺序不一致,通常这是可以忽?略的。

2.?max-load-analysis-wait-size

GreatDB?用于处理load?data数据包解析的?analysis节点的处理队列最大长度。

全局参数。可以动态修改

默认值?=?30。参数值范围?>=2

注意:

GreatDB对analysis节点进行数据包填充时,总是填充到max-load-analysis-wait-size指定的大小,并且analysis节点在待处理的数据包数量小于该值的一半时会唤醒父线程进行数据包填充。

建议该值使?用默认值或适当调高,如果需要导入的数据量非常的大时。

另外如果该值过大,会导致GreatDB缓存过多的数据包,将会导致GreatDB在load?data过程中对机器内存的消耗过多,极端情况下可能会OOM。

3.?max-load-ready-packets

GreatDB?处理load?data时,每个后端数据包发送?线程缓存的最大待发送数据包的数量。

全局参数。可以动态修改

默认值?=?64。参数值范围?>=10

注意:

GreatDB往后端发送的LOAD?DATA数据包每个是16M,默认值64即1G。每个后端partition对应一个数据包发送线程。当后端mysql处理过慢时可能导致数据包在数据包发送线程上堆积,但堆积的量达?到max-load-ready-packets时,GreatDB将挂起该load?data任务直到堆积的量小于max-load-ready-?packets。

4.?max-load-once-packet-num

GreatDB?向后端执行一次load的数据包数目。

会话级别参数。可以动态修改

默认值?=?64。参数值范围?>=10

注意:

对于分片表场景,如果一张表load数据量过大,一次load会导致主从延时巨大。此时可以调整本参数,设置每load一定包数就提交一次。

但是这么设置会有一定风险:

?

就是如果load过程中报错,那么之前load的数据会已经进入数据库,所以此时数据库会有部分脏数据,并且无法确认脏数据量。

一个数据包的大小取决与认证节点的?max_packet_size?,?默认值为?0?,表示不启用该功能,整个load只提交一次。

"

mysql LOAD DATA INFILE使用官方地址

https://dev.mysql.com/doc/refman/5.7/en/load-data.html

load data infile语句从一个文本/文件中以很高的速度写入表中。

读取位于服务器上的文本文件时,文件必须处于数据库目录或可被所有人读取

你指定关键词low_priority,那么MySQL将会等到没有其他人读这个表的时候,才把插入数据

指定local关键词,则表明从客户主机读文件。如果local没指定,文件必须位于服务器上

eplace和ignore关键词控制对现有的唯一键记录的重复的处理

fields关键字指定了文件记段的分割格式

terminated by分隔符:意思是以什么字符作为分隔符

enclosed by字段括起字符

escaped by转义字符

terminated by描述字段的分隔符,默认情况下是tab字符( )

enclosed by描述的是字段的括起字符。

escaped by描述的转义字符。默认的是反斜杠(backslash: )

1、win系统导入

批处理文件 import.bat 路径为d:/files/bat

/*dbhost执行文件不在本服务器需要,本次忽略*/

/*数据库账号名称*/

/*数据库密码*/

@SET dbpasswd=****

//需要执行的sql语句

/*未配置环境变量时加下下面两句*/

/*连接MySQL数据库并执行sql脚本 注意database为写入数据库名*/

sq文件 demo.sql 路径为d:/files/bat

/*D:filessimple.csv文件路径 ,table为写入数据表名,uname, phone数据库字段名称*/

/*退出*/

simple.csv

php执行批处理

注意如果system执行失败

编辑 php.ini 查找 disable_functions 将等号后面的 system 去掉即可 。其他人自行查资料

注意导入前开启mysql local_infile

开启local_infile

2、linux系统导入

linux导入比较简单:

注意 ***处填写数据库账号,****处填写数据库密码

table为写入数据表名,uname, phone数据库字段名

批处理文件 import.sh 路径为d:/files/bat

php执行批处理

注意如果system执行失败

编辑php.ini查找 disable_functions 将等号后面的 system 去掉即可。其他错误自行查资料

注意导入前开启mysql local_infile

开启local_infile


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6654010.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存