实战:利用Python脚本生成MySQL测试数据(python处理mysql)

网友投稿 366 2022-09-04


实战:利用Python脚本生成MySQL测试数据(python处理mysql)

新建一个用户表

drop table if exists tb_user;create table tb_user( id int primary key auto_increment comment '主键', name varchar(20) comment '姓名', phone varchar(11) comment '手机号', profession varchar(50) comment '专业', age int comment '年龄', status int comment '状态', email varchar(50) comment '邮箱');

利用Python脚本生成10万条测试数据

# Python >= 3.7.0# 安装依赖 pip install faker records mysqlclientfrom faker import Fakerimport records# 简体中文:zh_CNfaker = Faker(locale="zh_CN")# 指定随机种子,确保每次生成的数据都是一致的faker.seed(1)# 生成数据插入 insert sqldef get_insert_sql(table_name, fields): keys = ', '.join([f'`{key}`'.format(key) for key in fields]) values = ', '.join([f':{key}'.format(key) for key in fields]) return f'INSERT INTO `{table_name}` ({keys}) VALUES ({values})'# 获取数据def get_row(): return { 'name': faker.name(), 'phone': faker.phone_number(), 'email': faker.email(), 'age': faker.random_int(20, 30), 'status': faker.random_int(0, 1), 'profession': faker.job(), }# 插入数据库db = records.Database('mysql://root:123456@localhost/data?charset=utf8')# 10 * 10000 = 10万条数据for i in range(10): data = [get_row() for _ in range(10000)] sql = get_insert_sql('tb_user', data[0].keys()) db.bulk_query(sql, data)

查看生成的测试数据

mysql> select count(*) from tb_user;+----------+| count(*) |+----------+| 100000 |+----------+select * from tb_user limit 10;+----+-----------+-------------+---------------------------------+------+--------+---------------------+| id | name | phone | profession | age | status | email |+----+-----------+-------------+---------------------------------+------+--------+---------------------+| 1 | 费阳 | 13777763170 | 法务经理 | 27 | 1 | wyao@gmail.com || 2 | 祁海燕 | 13400806360 | 日式厨师 | 23 | 0 | jwan@jin.cn || 3 | 姬秀英 | 18281241586 | 食品/饮料研发 | 29 | 0 | li97@wang.cn || 4 | 官桂芳 | 15625851781 | 前台接待/总机/接待生 | 20 | 1 | fpeng@chang.cn || 5 | 应秀珍 | 13030388368 | 酒店前台 | 20 | 1 | qiang48@hotmail.com || 6 | 亢婷 | 18207598386 | 药品市场推广主管/专员 | 28 | 1 | ping50@hotmail.com || 7 | 仰俊 | 13192184011 | 机场代表 | 24 | 0 | wcai@liang.net || 8 | 匡洁 | 13622482447 | 汽车电工 | 24 | 1 | htang@gmail.com || 9 | 程建华 | 13748396030 | 市场通路经理/主管 | 28 | 1 | fangguo@yahoo.com || 10 | 岳荣 | 15080695604 | 培训督导 | 24 | 1 | fanglong@ding.com |+----+-----------+-------------+---------------------------------+------+--------+---------------------+10 rows in set (0.00 sec)


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:JAVA多种方法实现字符串反转
下一篇:【通信】基于非相干信号子空间(ISM)的宽带源DOA估计方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~