马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1.批量插入三种方式
- INSERT INTO … SELECT
- INSERT INTO … VALUES (…)
- LOAD DATA INFILE ‘/path/to/datafile.csv’ INTO TABLE table_name
2.批量插入
2.1 INSERT INTO … SELECT
用途:从另一个表中选择数据并插入到目的表中。
语法示例:
- INSERT INTO target_table (column1, column2)
- SELECT column1, column2 FROM source_table WHERE condition;
复制代码 性能特点:
- 非常得当批量数据复制或迁移任务。
- 可以一次性处理大量数据,镌汰了客户端与服务器之间的通讯次数。
- 在某些情况下,MySQL可以在服务器内部优化整个操作,避免不须要的数据传输。
- 如果SELECT查询本身很复杂(如涉及多个JOIN、子查询等),则大概会影响团体性能。
2.2 INSERT INTO … VALUES (…)
用途:直接插入明确指定的数据值。
语法示例:
- INSERT INTO table_name (column1, column/XMLSchema)
- VALUES (value1, value2);
复制代码 性能特点:
- 对于少量数据插入非常高效。
- 由于值是预先知道的,以是数据库可以优化这个操作。
- 当需要插入大量独立的行时,大概需要多次调用该语句,这会导致较高的网络延迟和事务开销。
2.3 LOAD DATA INFILE [path] INTO TABLE table_name
用途:如果数据已经在服务器上作为一个文件存在,大概可以通过网络传输到服务器上,那么使用LOAD DATA INFILE通常是最快的方法之一。
语法示例:
- LOAD DATA INFILE '/path/to/datafile.csv'
- INTO TABLE table_name
- FIELDS TERMINATED BY ','
- LINES TERMINATED BY '\n';
复制代码 优点:
相比其他方法,LOAD DATA INFILE通常要快得多,由于它直接读取文件内容并加载到表中,绕过了标准的SQL剖析器。
支持多种格式化选项来匹配输入文件结构。
缺点:
需要确保文件位于服务器当地或通过安全的方式传输至服务器。
大概需要调整MySQL的安全设置以允许LOAD DATA LOCAL INFILE。
3. LOAD DATA INFILE基本语法解释
基本语法解释
- LOAD DATA INFILE '/path/to/datafile.csv': 指定要导入的数据文件的位置。请注意,这里的路径是相对于服务器端的文件系统路径。
- INTO TABLE table_name: 指定要将数据导入的目标表。
- FIELDS TERMINATED BY ',': 定义字段之间的分隔符。在这个例子中,字段是以逗号 , 分隔的。
- LINES TERMINATED BY '\n': 定义行之间的终止符。这里每一行以换行符 \n 结束。
复制代码 进一步的设置选项
根据你的具体需求,大概还需要对命令进行一些额外的设置:
忽略某些行:
IGNORE 1 LINES; 是 LOAD DATA INFILE 命令中的一个选项,用于指示 MySQL 在导入数据时跳过文件的前几行
如果 CSV 文件包含标题行,可以使用 IGNORE number LINES 来跳过这些行。
- LOAD DATA INFILE '/path/to/datafile.csv'
- INTO TABLE table_name
- FIELDS TERMINATED BY ','
- LINES TERMINATED BY '\n'
- IGNORE 1 LINES;
复制代码 指定列映射:
如果 CSV 文件中的列次序与目的表不匹配,大概你想只导入部分列,可以指定列名(column1, column2, column3);:
- LOAD DATA INFILE '/path/to/datafile.csv'
- INTO TABLE table_name
- FIELDS TERMINATED BY ','
- LINES TERMINATED BY '\n'
- (column1, column2, column3);
复制代码 处理字符编码:CHARACTER SET utf8mb4
如果你的文件不是 UTF-8 编码,可以指定字符集:
- LOAD DATA INFILE '/path/to/datafile.csv'
- INTO TABLE table_name
- CHARACTER SET utf8mb4
- FIELDS TERMINATED BY ','
- LINES TERMINATED BY '\n';
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |