【AIGCode】让AI生成随机数据

用户测试数据库性能,SQL性能等。
交互流程:
 

假如我的表结构是:
CREATE TABLE prd_article_inf (
ARTICLE_INF_ID int(11) NOT NULL AUTO_INCREMENT,
ARTICLE_AUTHOR varchar(24) DEFAULT NULL,
ARTICLE_BRIEF varchar(255) DEFAULT NULL,
ARTICLE_CATEGORY_ID int(11) DEFAULT NULL,
ARTICLE_CONT longblob NOT NULL,
ARTICLE_COVER_PICT_ID int(11) DEFAULT NULL,
ARTICLE_POSITION int(11) NOT NULL,
ARTICLE_SOURCE varchar(128) DEFAULT NULL,
ARTICLE_TAG varchar(255) DEFAULT NULL,
ARTICLE_TITLE varchar(64) NOT NULL,
BROWSE_TIMES int(11) DEFAULT NULL,
CONT_ATTACHMENT_FILE_IDS varchar(128) DEFAULT NULL,
EXTERNAL_LINK varchar(255) DEFAULT NULL,
IF_RELEASE varchar(1) DEFAULT NULL,
IF_SYS_RESERVE varchar(2) NOT NULL,
META_DESCR varchar(255) DEFAULT NULL,
META_KEYWORDS varchar(255) DEFAULT NULL,
META_TITLE varchar(128) DEFAULT NULL,
RELEASE_TIME datetime DEFAULT NULL,
RELEASE_USER_ID int(11) DEFAULT NULL,
PRIMARY KEY (ARTICLE_INF_ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4


帮我写一个python脚本,写一个能给这个结构表随机插入10万条数据的脚本,假设本地MYSQL数据库名为my_test,访问用户和密码都为test

文心一言生成的有错误,通义千问的生成正确:
 

首先,你需要确保你已经安装了Python的MySQL连接库(如:mysql-connector-python)。如果没有,请使用以下命令进行安装:

bash
pip install mysql-connector-python
然后,你可以使用以下脚本来生成并插入随机数据到你的数据库中:

python
import random
import string
import mysql.connector
from datetime import datetime, timedelta

# 连接数据库
cnx = mysql.connector.connect(user='test', password='test',
                              host='localhost',
                              database='my_test')

# 创建一个游标对象
cursor = cnx.cursor()

# 定义一些函数来生成随机数据
def generate_string(length):
    return ''.join(random.choice(string.ascii_letters) for _ in range(length))

def generate_datetime(start_date, end_date):
    time_between_dates = end_date - start_date
    days_between_dates = time_between_dates.days
    random_number_of_days = random.randrange(days_between_dates)
    return start_date + timedelta(days=random_number_of_days)

# 生成10万条随机数据并插入到数据库中
for _ in range(100000):
    article_author = generate_string(24)
    article_brief = generate_string(255)
    article_category_id = random.randint(1, 1000)
    article_cont = b'\x00' * random.randint(100, 10000)  # 随机二进制内容
    article_cover_pict_id = random.randint(1, 1000)
    article_position = random.randint(1, 1000)
    article_source = generate_string(128)
    article_tag = generate_string(255)
    article_title = generate_string(64)
    browse_times = random.randint(1, 100000)
    cont_attachment_file_ids = generate_string(128)
    external_link = generate_string(255)
    if_release = random.choice(['Y', 'N'])
    if_sys_reserve = random.choice(['Y', 'N'])
    meta_descr = generate_string(255)
    meta_keywords = generate_string(255)
    meta_title = generate_string(128)
    release_time = generate_datetime(datetime(2020, 1, 1), datetime.now())
    release_user_id = random.randint(1, 1000)

    query = ("INSERT INTO prd_article_inf "
             "(ARTICLE_AUTHOR, ARTICLE_BRIEF, ARTICLE_CATEGORY_ID, ARTICLE_CONT, ARTICLE_COVER_PICT_ID, ARTICLE_POSITION, ARTICLE_SOURCE, "
             "ARTICLE_TAG, ARTICLE_TITLE, BROWSE_TIMES, CONT_ATTACHMENT_FILE_IDS, EXTERNAL_LINK, IF_RELEASE, IF_SYS_RESERVE, META_DESCR, "
             "META_KEYWORDS, META_TITLE, RELEASE_TIME, RELEASE_USER_ID) "
             "VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)")
    data = (article_author, article_brief, article_category_id, article_cont, article_cover_pict_id, article_position,
            article_source, article_tag, article_title, browse_times, cont_attachment_file_ids, external_link,
            if_release, if_sys_reserve, meta_descr, meta_keywords, meta_title, release_time, release_user_id)

    cursor.execute(query, data)

# 提交事务
cnx.commit()

# 关闭游标和连接
cursor.close()
cnx.close()
这个脚本会生成10万条随机数据并将其插入到名为prd_article_inf的表中。请注意,这个脚本可能需要一些时间才能完成运行,具体取决于你的系统性能。

但是执行效率还是会比较低,直接询问AI进行优化:

优化一下上面算法

优化后还是不错的,只要在循环里加入个百分比输出就差不多了

为了提高脚本的性能,我们可以考虑批量插入数据,而不是每次插入一条数据。以下是一个优化后的版本:

python
import random
import string
import mysql.connector
from datetime import datetime, timedelta

# 连接数据库
cnx = mysql.connector.connect(user='test', password='test',
                              host='localhost',
                              database='my_test')

# 创建一个游标对象
cursor = cnx.cursor()

# 定义一些函数来生成随机数据
def generate_string(length):
    return ''.join(random.choice(string.ascii_letters) for _ in range(length))

def generate_datetime(start_date, end_date):
    time_between_dates = end_date - start_date
    days_between_dates = time_between_dates.days
    random_number_of_days = random.randrange(days_between_dates)
    return start_date + timedelta(days=random_number_of_days)

# 生成10万条随机数据并插入到数据库中
data_list = []
for _ in range(100000):
    article_author = generate_string(24)
    article_brief = generate_string(255)
    article_category_id = random.randint(1, 1000)
    article_cont = b'\x00' * random.randint(100, 10000)  # 随机二进制内容
    article_cover_pict_id = random.randint(1, 1000)
    article_position = random.randint(1, 1000)
    article_source = generate_string(128)
    article_tag = generate_string(255)
    article_title = generate_string(64)
    browse_times = random.randint(1, 100000)
    cont_attachment_file_ids = generate_string(128)
    external_link = generate_string(255)
    if_release = random.choice(['Y', 'N'])
    if_sys_reserve = random.choice(['Y', 'N'])
    meta_descr = generate_string(255)
    meta_keywords = generate_string(255)
    meta_title = generate_string(128)
    release_time = generate_datetime(datetime(2020, 1, 1), datetime.now())
    release_user_id = random.randint(1, 1000)

    data = (article_author, article_brief, article_category_id, article_cont, article_cover_pict_id, article_position,
            article_source, article_tag, article_title, browse_times, cont_attachment_file_ids, external_link,
            if_release, if_sys_reserve, meta_descr, meta_keywords, meta_title, release_time, release_user_id)
    data_list.append(data)

    if len(data_list) == 1000:  # 每次插入1000条数据
        query = ("INSERT INTO prd_article_inf "
                 "(ARTICLE_AUTHOR, ARTICLE_BRIEF, ARTICLE_CATEGORY_ID, ARTICLE_CONT, ARTICLE_COVER_PICT_ID, ARTICLE_POSITION, ARTICLE_SOURCE, "
                 "ARTICLE_TAG, ARTICLE_TITLE, BROWSE_TIMES, CONT_ATTACHMENT_FILE_IDS, EXTERNAL_LINK, IF_RELEASE, IF_SYS_RESERVE, META_DESCR, "
                 "META_KEYWORDS, META_TITLE, RELEASE_TIME, RELEASE_USER_ID) "
                 "VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)")
        cursor.executemany(query, data_list)
        cnx.commit()
        data_list.clear()

# 插入剩余的数据(如果有的话)
if len(data_list) > 0:
    query = ("INSERT INTO prd_article_inf "
             "(ARTICLE_AUTHOR, ARTICLE_BRIEF, ARTICLE_CATEGORY_ID, ARTICLE_CONT, ARTICLE_COVER_PICT_ID, ARTICLE_POSITION, ARTICLE_SOURCE, "
             "ARTICLE_TAG, ARTICLE_TITLE, BROWSE_TIMES, CONT_ATTACHMENT_FILE_IDS, EXTERNAL_LINK, IF_RELEASE, IF_SYS_RESERVE, META_DESCR, "
             "META_KEYWORDS, META_TITLE, RELEASE_TIME, RELEASE_USER_ID) "
             "VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)")
    cursor.executemany(query, data_list)
    cnx.commit()
    data_list.clear()

# 关闭游标和连接
cursor.close()
cnx.close()
这个脚本会一次性插入1000条数据,从而减少了数据库操作的次数,提高了插入速度。

跑出来的结果还是不错的:

根据这个思路,我们还可以根据要求让AI生成的一对多子表的信息,类似方式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/215814.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

面试题之分布式事务篇

1.什么是分布式事务? 概述:在分布式系统上一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务节点上,且属于不同的应用,分布式事务需要保证这些小操作要 么全部成功,要么全部失败。 如下所示&…

课题学习(十四)----三轴加速度计+三轴陀螺仪传感器-ICM20602

本篇博客对ICM20602芯片进行学习,目的是后续设计一个电路板,采集ICM20602的数据,通过这些数据对各种姿态解算的方法进行仿真学习。 一、 ICM20602介绍 1.1 初识芯片 3轴陀螺仪:可编程全刻度范围(FSR)为250 dps,500 d…

Apache shiro1.2.4反序列化漏洞(CVE-2016-4437)

1.搭建环境 2.准备好ysoserial反序列化工具和poc.py 3.输入账号和密码然后记得勾上remember me,然后抓包。 4.后来了解到,shiro是基于CommonsBeanutils的反序列化链 5.所以通过ysoserial,生成那个的gadget(小工具)&#xff…

探索元宇宙链游戏:一场数字世界的奇妙融合

随着互联网的飞速发展,以及人们不断对互动娱乐体验的要求提高,元宇宙渐渐成为人们追求的目标。 而区块链技术的出现给元宇宙链游开发带来了新的机遇和挑战。 一、元宇宙链游定义 元宇宙链游全称为基于区块链技术的元宇宙游戏,是一种新型的网…

SSM整合(注解版)

SSM 整合是指将学习的 Spring,SpringMVC,MyBatis 进行整合,来进行项目的开发。 1 项目基本的配置类 1.1 Spring 配置类 这个配置类主要是管理 Service 中的 bean,controller 层的 bean 对象是 SpringMVC 管理的 package cn.ed…

在高德地图SDK上加载五层十五级瓦片的方法

目录 前言实现思路加载高德SDK,显示地图加载GroundOverlay类加载五层十五级瓦片清除瓦片总结前言 因为项目需求,需要在高德地图上加载五层十五级瓦片。这八竿子打不着的结合,着实没有思路。好在高德地图SDK提供了一个加载地表覆盖物的接口(GroundOverlay),这就为加载五层…

大数据集群增加数据盘,平衡数据盘HDFS Disk Balancer

大数据集群增加数据盘,平衡数据盘HDFS Disk Balancer 官网:https://hadoop.apache.org/docs/r3.3.6/hadoop-project-dist/hadoop-hdfs/HDFSDiskbalancer.html hdfs diskbalancer -execute /system/diskbalancer/nodename.plan.jsonhdfs diskbalancer -q…

无需公网IP!Apache服务器本地部署与内网穿透实现公网访问

Apache服务安装配置与结合内网穿透实现公网访问 文章目录 Apache服务安装配置与结合内网穿透实现公网访问前言1.Apache服务安装配置1.1 进入官网下载安装包1.2 Apache服务配置 2.安装cpolar内网穿透2.1 注册cpolar账号2.2 下载cpolar客户端 3. 获取远程桌面公网地址3.1 登录cpo…

01、pytest:帮助你编写更好的程序

简介 ​pytest框架可以很容易地编写小型、可读的测试,并且可以扩展以支持应用程序和库的复杂功能测试。使用pytest至少需要安装Python3.7或PyPy3。PyPI包名称为pytest 一个快速的例子 content of test_sample.py def inc(x):return x1def test_ansewer():assert i…

Presto:基于内存的OLAP查询引擎

Presto查询引擎 1、Presto概述1.1、Presto背景1.2、什么是Presto1.3、Presto的特性2、Presto架构2.1、Presto的两类服务器2.2、Presto基本概念2.3、Presto数据模型3、Presto查询过程3.1、Presto执行原理3.2、Presto与Hive3.3、Presto与Impala3.4、PrestoDB与PrestoSQL4、Presto…

YehdBPev通过AES解密为123456

1、代码 import cn.hutool.crypto.Mode; import cn.hutool.crypto.Padding; import cn.hutool.crypto.symmetric.AES; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec;public class Test {public static void main(String [] args) {Secr…

使用群晖Docker搭建HomeAssistant并实现异地公网访问家中智能设备

最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 使用群晖Docker搭建HomeAssistant并实现异地公网访问 文章目录 使…

iOS代码安全加固利器:深入探讨字符串和代码混淆器的作用

​ 在网上搜“代码混淆”关键词,可以看到n多教程。包括本篇博客,大部分重要内容也是从网上各位大神的博客里面看到然后摘取和总结出来的。虽然网上都有,但是对于我个人来说,很难找到一篇博客概括完全的,所以还是总结一…

IDEA使用git从远程仓库获取项目

将地址填入url中 然后直接clone就行

redis 常见问题分析

目录 redis 使用分析 一、redis 双写一致性分析 常见方式 1、先写数据库,后写缓存 2、先写数据库,后删缓存 3、先删缓存,再写数据库 4、延迟双删 二、redis 常见异常分析 一、缓存穿透 1、概念 2、解决方案 二、缓存雪崩 1、概念…

自媒体原创改写工具,自媒体首发改写软件

自媒体平台已成为许多创作者表达观点、分享知识和积累影响力的关键渠道。创作是需要技巧和经验的。本文将分享一些自媒体文章改写技巧,并推荐一系列优秀的自媒体文章改写工具,帮助您提升创作效率,创作出更优秀的文章。 自媒体文章改写技巧 …

浅谈档案管理与档案数据挖掘应用

一、当前常见档案及其管理方式 一般,档案是指人们在各项社会活动中直接形成的各种形式的具有保存价值的原始记录。原始记录性是它的本质属性。随着社会发展及数字技术的发展,产生了电子档案,是档案领域最剧烈的一次变革,它直接影…

ssrf介绍、相关php函数及demo演示

SSRF系列 危害(利用) 漏洞判断 回显 延时 DNS请求 相关函数

汽车后服务行业汽美汽修店小程序作用如何

汽车后服务行业包括汽美、汽修等多种门店类型,如今家庭拥车量平均数非常高,这意味着后服务市场商家只要服务好、质量佳、具备一定引流转化方式,就能获得生意。 然而传统门店在近些年生意也不好做,自然流量减少、同行竞争压力等&a…

极狐gitlab ci job拉取代码之前执行命令

有时候我们希望可以在检索 Git 代码库和任何 submodules 之前执行一下命令操作,接下来为大家介绍下通过 hooks:pre_get_sources_script 可以满足该场景的使用。 文章目录 1. 开启 feature flag2. 使用方式方式1在 ci job 中定义 hooks.pre_get_sources_script 方式2…