测试学习_MySql数据库百万级数据插入

学习背景:做性能测试需要大量数据做场景
前提:有数据库读取和插入权限
方法一:
Excel导入的方式,可以在Excel里面造大量数据,然后导入测试库,如果有权限从生产数据库导出数据再导入到测试库就更好了。

优点:简单
缺点:数据量达到百万级别还是比较麻烦

方法二:
用insert语句成倍往数据库里面添加重复数据,示例:
insert into table(tid,tname,tscore) select tid,tname,tscore from table;
理解:往table表插入数据,value为从table表查出的tid,tname,tscore值
问题:不想要重复的数据怎么办?
插入数据后再写修改字段sql语句,例如
update table set tid=contact(100,id);
update table set tname=contact(‘stu’,id);
update table set tscore=50+RAND()*50; //表示50+(0到50)的随机数

优点:快速
缺点:对于大量数据的插入还是麻烦

方法三:
用python连接数据库,通过循环来写入数据,示例:
import pymysql #导入数据库

#连接数据库
db = pymysql.connect(host=‘xxxx’,user=‘xxx’,passwd=‘xxxx’,db=‘xxxx’,port=3306,charset=‘utf-8’)

#定义游标
cur = db.cursor()

#初始化循环次数
count = 0
#初始化字段值
tid = 1000
tscore = 50

#循环执行sql
while count<1000:
count += 1
tname = ‘SFname’ + str(count)
tid += 1
values = (int(tid), str(tname), int(tscore))
sql = “”“insert into table (tid ,tname, tscore) values(%s,%s,%s)”""
cur.execute(sql,values)
db.commit()
cur.close()
db.close()

优点:造大量数据方便,只需把循环次数改为100万即可
缺点:相比较前两种没那么简单

方法四:
写存储过程,网上一搜一大堆,不再赘述,也是循环插入数据的原理

你可能感兴趣的:(测试学习_MySql数据库百万级数据插入)