前言
面试题:如果造10w条测试数据,如何在数据库插入10w条数据,数据不重复
最近面试经常会问到sql相关的问题,在数据库中造测试数据是平常工作中经常会用到的场景,一般做压力测试,性能测试也需在数据库中先准备测试数据。那么如何批量生成大量的测试数据呢?
由于平常用python较多,所以想到用python先生成sql,再执行sql往数据库插入数据。
使用语言:python 3.6
插入数据
首先我要插入的 SQL 语句,需每条 id 不重复 ,下面是执行单个插入语句
10w 太多执行时间长,用 python 先生成 1w条测下执行时间。
首先要生成多个insert 语句,这里我用 python 语言写段生成sql的脚本。
用 %s 替换需要变的字段值,如果有多个值都需要变,可以用多个%s替换对应值,我这里设计的表,只要id不一样就可以插入成功。
用for 循环,每次循环 id 加1,这样 id 就可以保证不会重复,否则插入数据库时有重复的无法写入成功。
a 是追加写入
每条sql后面分号隔开
每次写入数据,最后面加\n 换行
执行python代码,在本地生成一个 a.text 文件,打开生成的数据,部分如下
如果id是手机号呢,如何生成10w个不同手机号?
可以按手机号前3位开头的号码段生成,比如186开头的,先用初始数据 1860000000,再这个数字基础上每次加1
加到