往MySQL中插入大量数据是很常见的需求。本文将介绍如何往MySQL中插入30万数据。
首先,我们需要创建一个表来储存数据。下面是创建表的SQL代码:
CREATE TABLE `students` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`gender` enum('男','女') DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
接着,我们需要准备数据。这里我们使用Python来生成随机数据,并将数据插入到MySQL中。下面是Python的代码:
import random
import pymysql
# 连接MySQL数据库
db = pymysql.connect(host="localhost", user="root", password="password", database="test", charset="utf8mb4")
# 获取游标
cursor = db.cursor()
# 准备数据
for i in range(300000):
name = ''.join(random.sample(['张', '王', '李', '赵', '周', '陈', '刘', '郑'], 1)) + ''.join(random.sample('abcdefghijklmnopqrstuvwxyz', 4))
age = random.randint(18, 40)
gender = random.choice(['男', '女'])
# 插入数据到MySQL数据库
sql = "INSERT INTO students (name, age, gender) VALUES (%s, %s, %s)"
cursor.execute(sql, (name, age, gender))
# 提交数据
db.commit()
# 关闭连接
db.close()
代码中,我们使用Python的random模块生成随机数,然后将数据插入到MySQL中。为了提高插入速度,我们每插入1000条数据就进行一次commit操作。
如果您的MySQL版本较老,可能会因为一次性插入数据量过大而导致插入失败。这时候可以通过设置max_allowed_packet参数来调整MySQL的最大包大小。
到这里,我们就成功往MySQL中插入了30万条数据。