zoukankan      html  css  js  c++  java
  • mysql 的load data infile要使用

    LOAD DATA INFILE从文本文件中读出的声明以极高的速度到表。

    1、基本语法

    LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt'
    
       [REPLACE | IGNORE]
    
       INTO TABLE tbl_name
    
       [FIELDS
    
         [TERMINATED BY 'string']
    
         [[OPTIONALLY] ENCLOSED BY 'char']
    
         [ESCAPED BY 'char' ]
    
       ]
    
       [LINES
    
         [STARTING BY 'string']
    
         [TERMINATED BY 'string']
    
       ]
    
       [IGNORE number LINES]
    
       [(col_name_or_user_var,...)]
    
       [SET col_name = expr,...]]
    2、參数说明

    OW_PRIORITY:假设你指定关键词low_priority。那么MySQL将会等到没有其它人读这个表的时候。才把插入数据。案例:

    load data  low_priority infile "/home/mark/data sql" into table Orders;
    LOCAL:假设指定local关键词。则表明从客户主机读文件。假设local没指定,文件必须位于server上。

    CONCURRENT:则当LOAD DATA 正在运行时,其他线程会从表中又一次获取数据。即使没有其他线程在同一时候使用本表格,使用本选项也会稍微影响LOAD DATA 的性能。

    EPLACE 和IGNORE :keyword处理那些与已存在的主键值反复的输入记录。

    假设指定了REPLACE。输入行将会取代已存在的行(也就是说,主索引值同样的行将作为存在的行)。參考REPLACE 语法 。假设指定了IGNORE,与已存在行主键值反复的输入行将被跳过。

    假设不指定二者中的任一个,则操作行为将依赖是否指定了LOCAL keyword。没有指定LOCAL。则假设发现有反复的键值,将产生一个错误,并忽略文本文件的其余部分。
    FIELDS:指定了文件记段的切割格式,假设用到这个keyword。

    terminated by:意思是以什么字符作为分隔符,默认情况下是tab字符( )。比如:TERMINATED BY ' '
    enclosed by:字段
    结束
    escaped by:
    字段開始符号。默认的是反斜杠 (backslash: ),比如:ESCAPED BY '\'。

    Load Data InFile 'C:/Data.txt' Into Table `TableTest` Fields Terminated By ',' Enclosed By '"' Escaped By '"' Lines Terminated By '
    ';
    Fields Terminated By ',' Enclosed By '"' Escaped By '"'
    表示每一个字段用逗号分开。内容包括在双引號内


    Lines Terminated By ' ';
    表示每条数据用换行符分开

    LINES TERMINATED:指定了每条记录的分隔符,默觉得' '为换行符。

    IGNORE number LINES:这个选项能够用来忽略文件开头部分的行。

    比如,能够用IGNORE 1 LINES 来跳过含有列名的的头一行:

    LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test IGNORE 1 LINES;

    col_name_or_user_var:表示数据表字段:

    SET col_name = expr:提供不是来源于输入文件的值。

    LOAD DATA INFILE 'file.txt' INTO TABLE t1 (column1, column2) SET column3 = CURRENT_TIMESTAMP;

    3、其它说明
            假设希望装载操作中忽略外键约束。能够在运行LOAD DATA 之前运行SET FOREIGN_KEY_CHECKS=0 语句。
    假设用户在一个空的 ceshi 表上使用LOAD DATA INFILE。全部非唯一索引会以分批方式被创建(就像REPAIR)。当有很多索引时。这通常可以让LOAD DATA INFILE 快点。



    版权声明:本文博主原创文章。博客,未经同意不得转载。

  • 相关阅读:
    比特币全节点(bitcoind) eth 全节点
    Knowledge Tracing -- 基于贝叶斯的学生知识点追踪(BKT)
    trate
    spark
    linux 切换c++版本
    查找两个数组的相同字符(两个超大文件的相同字符)
    作业调度框架FluentScheduler
    .net与js数据交换中文乱码问题解决
    数据库死锁问题
    Service Fabric service 根据环境变量读取配置文件
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4866595.html
Copyright © 2011-2022 走看看