测试学习_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万即可
缺点:相比较前两种没那么简单

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值