mysql load data infile 的用法(40w数据 用了3-5秒导进mysql)

下面就是MySQL的load data infile的完整攻略:

什么是mysql load data infile

load data infile 是MySQL中一个加载数据的命令,它可以从指定的文本文件中读取数据,并插入到MySQL表中。这个命令通常用于导入大量的数据,它比INSERT语句快得多。在一些需要处理大量数据的应用场景中,load data infile 命令是非常受欢迎的。

mysql load data infile的使用场景

load data infile 命令常用于以下的场景:

  • 数据库迁移
  • 数据库数据导入
  • 大量数据的批量处理

mysql load data infile的语法

load data infile的语法结构如下:

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [FIELDS
        [TERMINATED BY '\t']
        [ENCLOSED BY '']
        [ESCAPED BY '\\' ]
    ]
    [LINES
        [STARTING BY '']
        [TERMINATED BY '\n']
    ]
    [IGNORE number_lines
        [( field [, field] ... )]
    ]

下面对语法中的每个部分进行讲解:

  • LOW_PRIORITY / CONCURRENT:选项用于控制插入操作的优先级。如果使用LOW_PRIORITY,插入操作将会在当前操作后执行。如果使用CONCURRENT,将会使用并行方式插入数据,这个选项仅在MyISAM存储引擎上有效。
  • LOCAL:如果使用LOCAL选项,将会从客户端的本地文件中读取数据。如果不指定,将会从MySQL服务器上读取数据。
  • file_name:指定输入文件的路径,可以是绝对路径或相对路径。
  • REPLACE / IGNORE:在将输入数据插入表时,用REPLACE选项指定,如果表中存在重复数据,将会替换原有数据。如果使用IGNORE选项,将会忽略重复的数据。
  • tbl_name:表名。
  • FIELDS:用于指定输入文本文件的字段格式。
    • TERMINATED BY:字段之间的分隔符。
    • ENCLOSED BY:字段所使用的包围符号。
    • ESCAPED BY:用于转义输入文件中的特殊字符。
  • LINES:用于指定输入文件中的行格式。
    • STARTING BY:指明行的起始符。
    • TERMINATED BY:指定输入文件中行的结束符。
  • IGNORE number_lines:用于忽略文件开始的number_lines行。
  • field:将输入文件中的某些字段映射到表中的某些字段。

mysql load data infile示例1

下面是一个示例,使用load data infile命令将数据导入到students表中。

首先,我们有一个students.txt文件,文件内容如下:

1   Joe
2   Mary
3   Mike
4   John

我们要将这些数据导入到students表中,students表的结构如下:

CREATE TABLE students (
  id INT(11) NOT NULL AUTO_INCREMENT,
  name VARCHAR(45) DEFAULT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

使用load data infile命令导入数据,命令如下:

LOAD DATA INFILE '/path/to/students.txt' 
INTO TABLE students
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
(id,name);

上面的命令中,我们指定了输入文件的文件路径,以及需要将数据导入到的数据库表名和表格字段。因为输入文件中的字段之间的分隔符是tab (\t),所以我们使用FIELDS TERMINATED BY '\t'指定了分隔符。由于每行数据都以换行符 (\n) 结束,所以使用LINES TERMINATED BY '\n'。最后,我们将文件中的第一列(id)映射到表中的id字段,第二列(name)映射到name字段。

mysql load data infile示例2

下面是另一个示例,使用load data infile命令从远程服务器中读取CSV文件,并将数据导入到MySQL表中。

我们运行以下命令将远程文件export.csv下载到本地:

scp user@server:/path/to/export.csv /path/to/local/

数据文件export.csv格式如下:

id,name,age,gender
1,John,25,Male
2,Mary,23,Female
3,Tom,30,Male
4,Jerry,28,Male

使用load data infile命令将CSV文件导入到students表格中,命令如下:

LOAD DATA INFILE '/path/to/local/export.csv' 
INTO TABLE students
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(id,name,age,gender);

上面的命令中,我们指定了输入文件的文件路径,需要将数据导入的数据库表名和表格字段。输入文件中的字段之间用逗号分隔,所以我们使用FIELDS TERMINATED BY ','。输入文件中的某些字段被双引号包围,所么我们使用OPTIONALLY ENCLOSED BY '"'进行转义。由于每行数据都以换行符 (\n) 结束,所以使用LINES TERMINATED BY '\n'。IGNORE 1 LINES选项指定忽略文件开始的一行数据,因为这是header行,不属于数据。

以上就是mysql load data infile的完整攻略了。读者可以按照上面的语法和示例进行实践,以达到更熟练地使用mysql load data infile命令的目的。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql load data infile 的用法(40w数据 用了3-5秒导进mysql) - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • MySQL执行计划详解

    MySQL执行计划详解 MySQL执行计划(Execution Plan)是指MySQL在执行查询语句时生成的一份计划,通过该计划可以了解MySQL是如何执行查询,包括哪些表被查询、表之间的连接方式、数据的读取方式、使用的索引等,从而帮助我们对查询语句进行调优,提高查询性能。 执行计划的生成 MySQL在执行查询语句时,会经历以下几个步骤生成执行计划: 语法…

    MySQL 2023年5月19日
    00
  • 数据库性能优化三:程序操作优化提升性能

    针对主题“数据库性能优化三:程序操作优化提升性能”,下面我将给出完整攻略,并且提供两个示例说明。 一、程序操作优化攻略 程序操作优化包括以下几种优化方式: 1.减少数据库交互 2.正确使用索引 3.避免全表扫描 4.语句优化 5.使用缓存技术 下面,我们将详细讲解这些优化方法及其实现方式。 1.减少数据库交互 减少数据库交互是一种有效的优化方式,通过将多次数…

    MySQL 2023年5月19日
    00
  • mysql通过mysqldump备份数据库忽略表

    单表: –ignore-table=数据库名.表名 多表:–ignore-table=数据库名.表名  –ignore-table=数据库名.表名 以下是 mysqldump 的一些使用参数 备份数据库#mysqldump 数据库名 >数据库备份名 #mysqldump -A -u用户名 -p密码 数据库名>数据库备份名 #mysqldum…

    MySQL 2023年4月12日
    00
  • mysql远程登录root账户报错1045的解决

    当我们在mysql中远程登录root账户时,有时会遇到1045的错误提示,这意味着连接被拒绝,我们需要进行相应的解决步骤。 以下是完整的攻略过程: 1.确认用户名和密码是否正确在远程连接mysql时,首先要确认用户名和密码是否正确,可以通过以下命令进行检查: mysql -u root -p 如果输入的密码不正确,会出现1045的错误,此时需要重置密码。如果…

    MySQL 2023年5月18日
    00
  • 解决Windows环境下安装 mysql-8.0.11-winx64 遇到的问题

    解决Windows环境下安装mysql-8.0.11-winx64遇到的问题的攻略如下: 问题描述 在Windows环境下安装mysql-8.0.11-winx64时,可能会遇到以下问题: 安装mysql时无法创建服务。 安装后无法登录数据库。 安装期间出现错误并中断。 解决方案 问题1:安装mysql时无法创建服务 这个问题通常是由于用户权限不足造成的。为…

    MySQL 2023年5月18日
    00
  • Swoole 协程 MySQL 客户端与异步回调 MySQL 客户端的对比

    为什么要对比这两种不同模式的客户端? 异步 MySQL 回调客户端是虽然在 Swoole 1.8.6 版本就已经发布了,但是异步回调的层层嵌套,让编码变得很别扭。如今 Swoole 4.3 版本都已经发布了,并且已经支持协程化的 MySQL 客户端,这意味着可以完全采用同步编码的模式,来进行程序开发了,对于开发者来说这是一个大好的消息。而且在 Swoole …

    MySQL 2023年4月13日
    00
  • MySQL日志的详细分析实例

    MySQL是常用的关系型数据库管理系统,它的日志对于数据库的运行、维护和问题排查都非常关键。本文将分享MySQL日志的详细分析实例,希望对学习MySQL的同学有所帮助。 一、MySQL日志类型及作用 MySQL共有以下6种日志类型: 错误日志(Error Log):记录MySQL服务在启动、运行以及停止过程中的错误信息。 查询日志(General Query…

    MySQL 2023年5月18日
    00
  • 向MySQL 中存储大文本数据

    package cn.itcast.demo; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.InputStreamReader; import java.io.Reader; import java.sql.Connecti…

    MySQL 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部