使用DBeaver连接MySQL并创建存储过程生成5万条数据

连接MySQL数据库
打开DBeaver,点击"数据库"菜单选择"新建连接",选择MySQL驱动。填写主机、端口、数据库名称、用户名和密码等信息,测试连接成功后保存。
在这里插入图片描述

创建测试表结构
在SQL编辑器中执行以下语句创建测试表:

CREATE TABLE security_moat(station_id bigint AUTO_INCREMENT PRIMARY KEY,station_sn bigint,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

创建存储过程生成数据
执行以下存储过程,该过程会批量插入5万条随机数据:

DELIMITER $$
CREATE PROCEDURE InsertBulkDatc15(IN num_records  INT)
BEGINDECLARE i INT DEFAULT 0;DECLARE current_station_id bigint default 0;DECLARE current_device_id bigint default 1;-- 开启事务确保性能START TRANSACTION;WHILE i < num_records  DO-- 生成模拟数据SET current_station_id = CONCAT(3109, i);SET current_device_id = CONCAT(5100, i);-- 插入记录insert into security_moat (station_id,station_sn) values (current_station_id,current_device_id);SET i = i + 1;-- 每10条提交一次,平衡性能与内存使用IF i % 10 = 0 THENcommit;START TRANSACTION;END IF;END WHILE;COMMIT;
END$$
DELIMITER ;

执行存储过程
调用存储过程生成5万条记录:
2种方式,一种直接通过 call命令在sql窗口执行

CALL generate_test_data(50000);

一种通过python脚本执行,脚本名称 test.py

import pymysql
import timedef bulk_insert_via_stored_procedure():# 数据库配置config = {'host': 'localhost','user': 'art','password': 'test','database': 'mysql','charset': 'utf8mb4','cursorclass': pymysql.cursors.DictCursor}try:# 连接数据库connection = pymysql.connect(**config)with connection.cursor() as cursor:print("开始调用存储过程插入数据...")start_time = time.time()# 调用存储过程,传入要插入的记录数cursor.callproc('InsertBulkDatc15', (50000,))connection.commit()elapsed = time.time() - start_timeprint(f"成功插入50,000条记录,耗时: {elapsed:.2f}秒")print(f"平均速率: {50000/elapsed:.2f} 条/秒")except pymysql.MySQLError as e:print(f"数据库错误: {e}")finally:if connection:connection.close()if __name__ == "__main__":bulk_insert_via_stored_procedure()

本地连接,直接通过cmd执行即可
如果为服务器上,通过服务器执行脚本
本地打开cmd,输入D: 进到 test.py所在位置
py test.py 执行脚本
在这里插入图片描述

验证数据生成
查询表记录数确认数据生成成功:

SELECT COUNT(*) FROM test_data;

清理资源
数据生成完成后可删除存储过程:

DROP PROCEDURE IF EXISTS generate_test_data;
DROP PROCEDURE IF EXISTS generate_test_data_optimized;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/86587.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/86587.shtml
英文地址,请注明出处:http://en.pswp.cn/web/86587.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

某省赛题-windows内存取证

1.获取admin用户密码是多少&#xff1f; 这里我们使用hashdump之后用john爆破没有结果&#xff0c;然后使用lsadump出来了flag 2.获取ip和主机名是什么&#xff1f; 主机名&#xff1a; 看注册表 SAM&#xff1a;记录了所有的用户 SYSTEM&#xff1a;可以看主机名 SOFTWARE&a…

【软考高项论文】论信息系统项目的成本管理

摘要 在信息系统项目管理里&#xff0c;成本管理是极为关键的环节&#xff0c;直接影响项目的顺利开展与最终成败。本文结合项目管理实际情况&#xff0c;从项目成本基准的形成过程、项目S曲线的绘制以及成本控制的具体实施三个方面&#xff0c;详细阐述了对信息系统项目成本管…

AI人工智能技术应用于人社服务领域的创新研究报告

AI 人工智能技术应用于人社服务领域的创新研究报告 一、研究背景与市场概况 1.1 研究背景与政策环境 人工智能技术正深刻改变政府治理模式和公共服务方式。在国家全面推进数字化转型的战略背景下,人社部《数字人社建设行动实施方案》明确提出:到 2025 年,人社数字化底座…

javaEE-mybatis操作数据库

前言 在MySQL的学习阶段&#xff0c;我们知道了如何使用JDBC去操作&#xff0c;也正是因为学习了JDBC也知道其操作的繁琐&#xff0c;每次的CRUD操作都需要从数据库连接池中去获取数据库连接&#xff0c;然后再编写SQL语句&#xff0c;并绑定对应的参数&#xff0c;接着通过连…

移动端测试——如何解决iOS端无法打开弹窗式网页(Webkit)

目录 一、什么是webkit&#xff1f; 1. 核心定义 2. iOS 的特殊限制 3. 弹窗拦截的逻辑 二、为什么 iOS 必须用 WebKit&#xff1f; 1. 苹果的官方理由 2. 实际后果 3.然而…… 三、如何解决iOS端无法打开弹窗式网页&#xff1f; 1.用户 1.1 safari浏览器 1.2 夸克…

【github】从本地更新仓库里的文件笔记

1. 打开GitHub官网&#xff0c;并登录到您的账户。 2. 在页面右上角的搜索栏中&#xff0c;输入您要更新的仓库名称&#xff0c;并选择相应的仓库进入。 3. 在仓库页面中&#xff0c;找到并点击红色的“Code”按钮&#xff0c;然后复制仓库的HTTPS或者SSH链接。 4. 右键包含…

Excel基础:数据编辑

Excel是Windows下最常用的数据处理工具&#xff0c;本文详细介绍Excel的数据编辑功能&#xff0c;熟练掌握编辑技巧能可以极大提升工作效率&#xff0c;文章最后附加了一张总结思维导图&#xff0c;方便大家查找和记忆。 文章目录 一、数据输入1.1 覆盖输入1.2 追加输入1.3 任…

JavaScript中Object()的解析与应用

在JavaScript中&#xff0c;Object() 是一个基础构造函数&#xff0c;用于创建对象或转换值为对象类型。它既是语言的核心组成部分&#xff0c;也提供了一系列静态方法用于对象操作。以下是详细解析和应用示例&#xff1a; 一、Object() 的基本行为 作为构造函数&#xff08;…

stream使用案例

1.1 查找所有的偶数并求和 public static void p1() { List<Integer> numbers Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); int sum numbers.stream() .filter(num -> num % 2 0) .mapToInt(Integer::intValue) .sum() ; System.err.printf…

力扣 刷题(第七十一天)

灵感来源 - 保持更新&#xff0c;努力学习 - python脚本学习 4的幂 解题思路 位运算条件&#xff1a;4 的幂的二进制表示中只有一个 1&#xff0c;且位于奇数位&#xff08;如 4 100&#xff0c;4 10000&#xff09;。模运算条件&#xff1a;4 的幂减 1 后能被 3 整除&…

深度学习使用Pytorch训练模型步骤

训练模型是机器学习和深度学习中的核心过程&#xff0c;旨在通过大量数据学习模型参数&#xff0c;以便模型能够对新的、未见过的数据做出准确的预测。 训练模型通常包括以下几个步骤&#xff1a; 1.数据准备&#xff1a; 收集和处理数据&#xff0c;包括清洗、标准化和归一化…

Unity_导航操作(鼠标控制人物移动)_运动动画

文章目录 前言一、Navigation 智能导航地图烘焙1.创建Plan和NavMesh Surface2.智能导航地图烘焙 二、MouseManager 鼠标控制人物移动1.给场景添加人物&#xff0c;并给人物添加导航组件2.编写脚本管理鼠标控制3.给人物编写脚本&#xff0c;订阅事件&#xff08;添加方法给Mouse…

6. 接口分布式测试pytest-xdist

pytest-xdist实战指南&#xff1a;解锁分布式测试的高效之道 随着测试规模扩大&#xff0c;执行时间成为瓶颈。本文将带你深入掌握pytest-xdist插件&#xff0c;利用分布式测试将执行速度提升300%。 一、核心命令解析 加速安装&#xff08;国内镜像&#xff09; pip install …

预训练语言模型

预训练语言模型 1.1Encoder-only PLM ​ Transformer结构主要由Encoder、Decoder组成&#xff0c;根据特点引入了ELMo的预训练思路。 ELMo&#xff08;Embeddings from Language Models&#xff09;是一种深度上下文化词表示方法&#xff0c; 该模型由一个**前向语言模型&…

Altera PCI IP target设计分享

最近调试也有关于使用Altera 家的PCI IP&#xff0c;然后分享一下代码&#xff1a; 主要实现&#xff1a;主控作为主设备&#xff0c;FPGA作为从设备&#xff0c;主控对FPGA IO读写的功能 后续会分享FPGA作为主设备&#xff0c; 从 FPGA通过 memory写到主控内存&#xff0c;会…

基于机器学习的智能文本分类技术研究与应用

在当今数字化时代&#xff0c;文本数据的爆炸式增长给信息管理和知识发现带来了巨大的挑战。从新闻文章、社交媒体帖子到企业文档和学术论文&#xff0c;海量的文本数据需要高效地分类和管理&#xff0c;以便用户能够快速找到所需信息。传统的文本分类方法主要依赖于人工规则和…

前端项目3-01:登录页面

一、效果图 二、全部代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>码农魔盒</title><style>.bg{position: fixed;top: 0;left:0;object-fit: cover;width: 100vw;height: 100vh;}.box{width: 950px;he…

Nexus CLI:简化你的分布式计算贡献之旅

探索分布式证明网络的力量&#xff1a;Nexus CLI 项目深入解析 在今天的数字时代&#xff0c;分布式计算和去中心化技术正成为互联网发展的前沿。Nexus CLI 是一个为 Nexus 网络提供证明的高性能命令行界面&#xff0c;它不仅在概念上先进&#xff0c;更是在具体实现中为开发者…

IBW 2025: CertiK首席商务官出席,探讨AI与Web3融合带来的安全挑战

6月26日至27日&#xff0c;全球最大的Web3安全公司CertiK亮相伊斯坦布尔区块链周&#xff08;IBW 2025&#xff09;&#xff0c;首席商务官Jason Jiang出席两场圆桌论坛&#xff0c;分享了CertiK在AI与Web3融合领域的前沿观察与安全见解。他与普华永道土耳其网络安全服务主管Nu…

Vivado 五种仿真类型的区别

Vivado 五种仿真类型的区别 我们还是用“建房子”的例子来类比。您已经有了“建筑蓝图”&#xff08;HLS 生成的 RTL 代码&#xff09;&#xff0c;现在要把它建成真正的房子&#xff08;FPGA 电路&#xff09;。这五种仿真就是在这个过程中不同阶段的“质量检查”。 1. 行为…