MySQL表数据批量添加是指一次性向数据库表中插入多条记录的操作。相比于逐条插入数据,批量添加可以显著提高数据插入的效率。
INSERT INTO ... VALUES语句:INSERT INTO ... VALUES语句:LOAD DATA INFILE语句:
适用于从文件中批量导入数据。LOAD DATA INFILE语句:
适用于从文件中批量导入数据。Duplicate entry错误原因:插入的数据中存在重复的主键或唯一索引值。
解决方法:
INSERT IGNORE语句忽略重复的记录。INSERT IGNORE语句忽略重复的记录。ON DUPLICATE KEY UPDATE语句更新重复的记录。ON DUPLICATE KEY UPDATE语句更新重复的记录。原因:可能是由于网络延迟、数据库负载过高或SQL语句编写不当等原因。
解决方法:
innodb_buffer_pool_size、innodb_log_file_size等,以提高性能。以下是一个使用Python和MySQL Connector库进行批量插入的示例:
import mysql.connector
# 连接到MySQL数据库
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="yourdatabase"
)
mycursor = mydb.cursor()
# 准备要插入的数据
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = [
('John', 'Highway 21'),
('Peter', 'Lowstreet 4'),
('Amy', 'Apple st 652'),
('Hannah', 'Mountain 21'),
('Michael', 'Valley 345'),
('Sandy', 'Ocean blvd 2'),
('Betty', 'Green Grass 1'),
('Richard', 'Sky st 331'),
('Susan', 'One way 98'),
('Vicky', 'Yellow Garden 2'),
('Ben', 'Park Lane 38'),
('William', 'Central st 954'),
('Chuck', 'Main Road 989'),
('Viola', 'Sideway 1633')
]
# 执行批量插入
mycursor.executemany(sql, val)
# 提交事务
mydb.commit()
print(mycursor.rowcount, "记录插入成功。")没有搜到相关的文章