当前位置:实例文章 » 其他实例» [文章]如何往MySQL中插入100万条数据?

如何往MySQL中插入100万条数据?

发布人:shili8 发布时间:2025-03-14 03:42 阅读次数:0

**往 MySQL 中插入100 万条数据**

在实际的开发过程中,我们经常需要往数据库中插入大量的数据。例如,在数据采集、爬虫等场景下,我们可能需要往 MySQL 数据库中插入数十万甚至数百万条数据。在这种情况下,直接使用 `INSERT`语句显然是不合适的,因为它会导致性能严重下降。

在本文中,我们将介绍如何高效地往 MySQL 中插入100 万条数据。我们将使用 Python语言来实现这个功能。

**准备工作**

首先,我们需要准备好一个 MySQL 数据库和相应的连接信息。假设我们的数据库名称为 `mydb`,用户名为 `root`,密码为 `123456`。

import mysql.connector# 连接配置config = {
 'host': 'localhost',
 'database': 'mydb',
 'user': 'root',
 'password': '123456'
}

# 创建连接对象cnx = mysql.connector.connect(**config)


**批量插入数据**

为了高效地插入100 万条数据,我们可以使用 MySQL 的 `LOAD DATA`语句。这个语句允许我们一次性插入多行数据。

# 定义要插入的数据data = [
 {'id':1, 'name': 'John', 'age':25},
 {'id':2, 'name': 'Alice', 'age':30},
 # ...
]

# 将数据转换为 CSV 格式csv_data = ','.join([f"{row['id']},{row['name']},{row['age']}" for row in data])

# 使用 LOAD DATA 插入数据cursor = cnx.cursor()
query = f"LOAD DATA LOCAL INFILE '/tmp/data.csv' INTO TABLE mytable FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '
'"
cursor.execute(query)
cnx.commit()

# 关闭连接cnx.close()


在上面的示例中,我们首先定义了一个包含100 万条数据的列表 `data`。然后,我们将这个列表转换为 CSV 格式,并使用 `LOAD DATA`语句插入数据。

**注意事项**

在实际的开发过程中,需要注意以下几点:

* MySQL 的 `LOAD DATA`语句有性能限制,通常不建议用于大规模数据插入。
* 使用 `LOAD DATA`语句时,需要确保数据文件的路径和名称正确。
* 如果使用 `LOAD DATA`语句插入数据失败,可能会导致 MySQL 数据库崩溃。

**总结**

在本文中,我们介绍了如何高效地往 MySQL 中插入100 万条数据。我们使用 Python语言和 MySQL 的 `LOAD DATA`语句来实现这个功能。需要注意的是,MySQL 的 `LOAD DATA`语句有性能限制,因此不建议用于大规模数据插入。

**参考**

* MySQL 文档:[LOAD DATA]( />* Python 文档:[mysql-connector-python](

相关标签:mysql数据库
其他信息

其他资源

Top