MySQL 快速插入千万级大数据的方法有很多,以下是一些常用的方法:
1.使用LOAD DATA方式批量导入数据
LOAD DATA是MySQL提供的一个非常快速的方式,可以一次性导入成千上万条记录。语法如下:
LOAD DATA LOCAL INFILE 'data.txt' INTO TABLE table_name
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(col1, col2, col3...);
其中,data.txt
是你要导入的数据文件,第2行到第6行分别指定了文件的编码方式、字段分隔符、行分隔符和字段列表。需要注意的是,如果文件中的数据列数与FIELDS
关键字后的字段数不一致,会导致导入失败。
使用这种方式时,需要在MySQL客户端中设置local-infile=1
,才能从本地文件系统读取数据。
示例1:假设有一个包含100万条记录的CSV文件data.csv
,文件格式如下:
id,name,age,gender
1,Tom,20,Male
2,Mary,25,Female
3,John,30,Male
......
我们可以执行以下SQL语句将这些数据批量导入到数据库中:
LOAD DATA LOCAL INFILE 'data.csv' INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(id, name, age, gender);
在这个例子中,我们将CSV文件中的字段分隔符、行分隔符和字段列表与表的信息一一对应,然后通过LOAD DATA
语句将数据直接插入到MySQL表中。
2.使用INSERT INTO SELECT语句插入数据
另一种快速插入数据的方式是使用INSERT INTO SELECT
语句,可以将数据从一个表中复制到另一个表中。语法如下:
INSERT INTO table1 (col1, col2, ...)
SELECT col1, col2, ...
FROM table2;
其中,table1
为目标表,table2
为源表,要插入的列在括号中列出。这种方式可以用来复制数据、双方表结构完全一致,如果要向目标表中插入新的数据列,需要先对目标表执行ALTER TABLE
语句来添加新的列。
示例2:假设有一张名为users_copy
的空表,我们需要将users
表中的数据复制到这张表中:
CREATE TABLE users_copy LIKE users;
INSERT INTO users_copy
SELECT * FROM users;
在这个例子中,我们先使用CREATE TABLE
语句复制了users
表的表结构,然后使用INSERT INTO SELECT
语句将数据批量插入到新表中。
以上是两个比较常用的MySQL快速插入千万级大数据的方法,根据实际情况选择适合自己的方式即可。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySql 快速插入千万级大数据的方法示例 - Python技术站