CSV批量导入MySQL的高效方式(csv分批写入mysql)

CSV批量导入MySQL的高效方式

对于大量数据的存储和管理,MySQL是一种可靠的选择。而CSV文件则是一种普遍使用的数据格式,它可以轻松地转换到MySQL数据库中。然而,在实际应用中,如何高效地将大量的CSV文件批量导入MySQL数据库中却是一个棘手的问题。在本文中,我们将介绍一种高效的CSV批量导入MySQL的方法,并提供一些实用的代码示例。

步骤1:创建MySQL表结构并添加索引

在导入CSV文件之前,我们需要先创建MySQL表结构。同时,为了提高查询效率,建议添加索引,特别是在导入大量数据时。

举个例子:

我们创建一个名为“students”的表,其中包含了id、name、age、gender、major等字段。为了提高查询效率,我们在“id”和“name”字段上添加了索引。

CREATE TABLE students (

id INT PRIMARY KEY,

name VARCHAR(50),

age INT,

gender VARCHAR(10),

major VARCHAR(50)

);

ALTER TABLE students ADD INDEX id_index (id);

ALTER TABLE students ADD INDEX name_index (name);

步骤2:编写Python脚本

在Python 3.x环境下,我们可以通过pandas库来读取CSV文件数据,并使用MySQLdb库将数据批量导入到MySQL数据库中。下面是一个示例代码:

import pandas as pd

import MySQLdb

# 读取CSV文件数据

data = pd.read_csv(‘students.csv’)

# 建立MySQL连接

conn = MySQLdb.connect(

host=”localhost”,

port=3306,

user=”root”,

passwd=”password”,

db=”test”,

charset=”utf8″

)

# 获取游标

cur = conn.cursor()

# 批量导入数据

for index, row in data.iterrows():

sql = “INSERT INTO students (id, name, age, gender, major) VALUES (%s, %s, %s, %s, %s)”

values = (row[‘id’], row[‘name’], row[‘age’], row[‘gender’], row[‘major’])

cur.execute(sql, values)

# 提交事务

conn.commit()

# 关闭连接

cur.close()

conn.close()

步骤3:执行Python脚本

将脚本保存为import_csv_to_mysql.py文件,并执行以下命令:

$ python import_csv_to_mysql.py

如果一切正常,我们就会看到MySQL数据库中已成功导入CSV文件数据的提示。

总结

通过使用pandas库和MySQLdb库,我们可以快速高效地批量导入CSV文件数据到MySQL数据库中。同时,在导入数据之前,我们还可以考虑为MySQL表添加索引,以提高查询效率。这种方法适用于批量导入大量的CSV文件数据,具有较高的效率和可靠性。


数据运维技术 » CSV批量导入MySQL的高效方式(csv分批写入mysql)