mysql 学习存储过程:一次插入 10W 条记录、卡死了怎么办

news/2024/5/15 20:59:10/文章来源:https://blog.csdn.net/u010953609/article/details/130336500

存储过程简要规范:

  1. 所有的存储过程必须有前缀“proc_”,所有的系统存储过程都有前缀“sp_”。
  2. 输入参数以i_开头,输出参数以o_开头。

实验示例

mysql> use test_20230414;

mysql> CREATE TABLE person (
id int NOT NULL AUTO_INCREMENT,
name varchar(15) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=10001 ;

创建 2 个存储过程

  1. 使用事务

     delimiter $CREATE PROCEDURE proc_insert_person(IN i_total INT)BEGINDECLARE i INT DEFAULT 1;START TRANSACTION;WHILE i<= i_total DOINSERT INTO person(NAME) VALUE (CONCAT("wzh",i));SET i=i+1;END WHILE;COMMIT;END$delimiter ;
    
  2. 不使用事务

     delimiter $CREATE PROCEDURE proc_insert_person_without_transaction(IN i_total INT)BEGINDECLARE i INT DEFAULT 1;/* START TRANSACTION;*/WHILE i<=i_total DOINSERT INTO person(NAME) VALUE (CONCAT("wzh",i));SET i=i+1;END WHILE;/* COMMIT; */END$delimiter ;
    
  3. 查询存储过程

     mysql> SHOW PROCEDURE STATUS like 'proc_insert_person%'\G;mysql> SHOW PROCEDURE STATUS where db = 'test_20230414'\G;*************************** 1. row ***************************Db: test_20230414Name: proc_insert_personType: PROCEDUREDefiner: root@%Modified: 2023-04-22 16:29:46Created: 2023-04-22 16:29:46Security_type: DEFINERComment: character_set_client: utf8mb4collation_connection: utf8mb4_0900_ai_ciDatabase Collation: utf8mb4_0900_ai_ci*************************** 2. row ***************************Db: test_20230414Name: proc_insert_person_without_transactionType: PROCEDUREDefiner: root@%Modified: 2023-04-22 16:39:52Created: 2023-04-22 16:39:52Security_type: DEFINERComment: character_set_client: utf8mb4collation_connection: utf8mb4_0900_ai_ciDatabase Collation: utf8mb4_0900_ai_ci2 rows in set (0.00 sec)ERROR: No query specified
    
  4. 先测试 1W 条

    mysql> truncate person;

    mysql> CALL proc_insert_person(10000);
    Query OK, 0 rows affected (1.76 sec)

    mysql> truncate person;
    mysql> CALL proc_insert_person_without_transaction(10000);
    Query OK, 1 row affected (9 min 25.57 sec)

    不使用事务好慢!

  5. 再测试 10W 条

     mysql> CALL proc_insert_person(100000);Query OK, 0 rows affected (10.66 sec)mysql> CALL proc_insert_person_without_transaction(100000);
    

    10W 条不带事务,停在那里不动,卡死了一样,怎么办?只好想办法中止他

  6. 另开一个Terminal 来中止

     mysql> show processlist;
    

    想要筛选加不上 : show processlist where User=‘root’;
    改用 slect 查询

     mysql> select * from information_schema.processlist where user = 'root';+--------+------+-----------+---------------+---------+------+----------------------------+------------------------------------------------------------------+| ID     | USER | HOST      | DB            | COMMAND | TIME | STATE                      | INFO                                                             |+--------+------+-----------+---------------+---------+------+----------------------------+------------------------------------------------------------------+| 156362 | root | localhost | test_20230414 | Query   |    0 | waiting for handler commit | INSERT INTO person(NAME) VALUE (CONCAT("wzh",i))                 || 155356 | root | localhost | NULL          | Query   |    0 | executing                  | select * from information_schema.processlist where user = 'root' |+--------+------+-----------+---------------+---------+------+----------------------------+------------------------------------------------------------------+2 rows in set (0.00 sec)
    

    kill 掉哪个进程

     mysql> kill 156362;Query OK, 0 rows affected (0.00 sec)
    

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

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

相关文章

Django框架之Admin站点管理

Django的强大体现在其内置的Admin模块可以使得开发人员在不做任何编码的情况下就拥有网站后台管理功能。 概述 内容发布&#xff1a;负责添加、修改、删除内容 内容访问查看 配置admin应用 在settings.py中添加django.contrib.admin 默认已添加 创建管理员账户 python man…

Spring AOP实现原理

从入口 org.springframework.context.support.AbstractApplicationContext#refresh 开始看 找到Bean的创建方法进入: 再进入详细方法: 找到getBean(beanName)&#xff1a; 找到doGetBean(xxx,xxx,xxx,xxx); 找到实际的Bean创建方法createBean(beanName, mdb, args);可以非常明显…

android studio 导入安卓源码

下载源码 在工程根目录下的android目录打开命令行 然后依次执行 source ./build/envsetup.sh lunch 15(选择15 napa-userdebug ) make idegen -j4 development/tools/idegen/idegen.sh 就在根目录的android目录下会生成android.ipr文件 然后用android studio 可以打开源码了 …

(二十二)查找算法-斐波那契算法

1 基本介绍 &#xff08;1&#xff09;黄金分割点是指一条线段分割为两部分&#xff0c;使其中一部分与全长之比等于另一部分与这部分之比。取其前三位数字的近似值是0.618.由于按此比例设计的造型十分美丽&#xff0c;因此称为黄金分割&#xff0c;也称为中外比。这是一个神奇…

jmeter的界面介绍

前言 jmeter是一款进行接口自动化&#xff0c;性能测试的开源的工具 界面 jmeter菜单里面有个文件--模板&#xff0c;这个主要是一些请求不知道怎么设置时可以选择预制的一些模板 选择对应的模板点击创建&#xff0c;就可以生成一个对应的记录&#xff0c;我们选择jdbc&…

C# 多线程示例

百度网盘原代码连接&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1czWI74fxfe8VoZOQOG201g 提取码&#xff1a;qn9h using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; …

在vite中使用mockjs, vite中使用vite-plugin-mock

相信前端同学都会碰见类似的问题&#xff0c;就是页面可能很快写完了&#xff0c;但是接口同学还在缓慢设计表中&#xff01; 这个时候咳咳&#xff0c;你就可以去摸鱼了或者看小说了 但实际上可不能这样哦&#xff0c;要老老实实做个打工人 步入正题了 在vite中有个mock的插…

安全代码审计实施标准学习笔记

声明 本文是学习GB-T 39412-2020 信息安全技术 代码安全审计规范. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 资源使用安全缺陷审计列表 资源管理 审计指标&#xff1a;应避免重复释放资源。 审计人员应检查代码是否存在重复释放资源的情况。重…

SpringBoot中集成任务调度

文章目录 SpringBoot中集成任务调度1. 任务调度基本介绍2. corn表达式介绍2-1 corn的每一个位置功能介绍2-2 占位符说明2-3 常用cron举例 3. SpringBoot项目中&#xff0c;集成任务调度Scheduled3-1 添加SpringBoot启动依赖3-2 具体corn任务调度计划3-3 SpringBoot启动类添加注…

LightGBM模型详解

1.背景 LightGBM 是微软开发的 boosting 集成模型&#xff0c;和 XGBoost 一样是对 GBDT 的优化和高效实现&#xff0c;原理有一些相似之处&#xff0c;但它很多方面比 XGBoost 有着更为优秀的表现。官方给出的这个工具库模型的优势如下&#xff1a; 更快的训练效率低内存使用…

倾斜摄影三维模型转换3DTILTES格式遇到的常见问题

倾斜摄影三维模型转换3DTILTES格式遇到的常见问题 将倾斜摄影三维模型从OSGB格式转换为3DTILES格式时&#xff0c;常见的问题包括&#xff1a; 1、3D Tiles生成时间较长&#xff1a;由于3D Tiles是一种高效的地理数据存储格式&#xff0c;能够支持海量的空间数据呈现和查询&am…

安虚拟机详细教程 VMware虚拟机与主机之间不能复制粘贴及拖拽问题

VMware虚拟机中安装Ubuntu18.04&#xff08;linux发行版&#xff09;【超详细图文教程】_vmware安装ubuntu18.04__7270的博客-CSDN博客 1. 查看vmware Tools是否安装 打开虚拟机 &#xff0c;点击上方导航栏 ‘虚拟机’ 查看VMware Tools是否安装&#xff0c;如果未安装&#…

无人机影像处理流程

无人机由于其方便快捷&#xff0c;精度高等特点已经广泛应用于农田尺度的作物生长监测。尤其是近年来大疆推出了两个多光谱无人机&#xff0c;价格也相较便宜。但目前无人机的使用实际上需要进一步处理才能获取得到农田的基本信息&#xff0c;主要包括影像的校正和图像拼接&…

python中plt线性插值、平滑显示图像

直接平滑显示&#xff1a; import matplotlib.pyplot as plt import numpy as np from scipy import interpolatex np.array([2,4,6,8,10]) y np.array([1,2,3,4])z np.array([[95,95,95,95,95],[80,80,80,80,80],[70,70,70,70,70],[100,100,100,100,100]])fig, axe plt.…

Springcloud快速复习--注册中心

按照个人的习性,分布式我学习完以后一定会忘为此写次笔记自己快速复习 目录 Springcloud介绍注册中心–Eureka注册中心–Nacos Springcloud介绍及微服务介绍 为什么学? 也不是以前的单体架构被淘汰而是,当业务足够大型,进行优化 单体架构&#xff1a;将业务的所有功能集中在…

2022年中国云市场份额:阿里云腾讯云下降

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 4月23日&#xff0c;IDC发布《中国公有云服务市场(2022下半年)跟踪》&#xff0c;占据前四的分别为阿里云(40.6%)、华为云(11.0%)、腾讯云(11.0%)、中国电信(8.7%)。咱们说重点&#xff0c;如下图所…

Oracle中实现恢复删除的表或表数据内容

一、需求说明 在我们进行项目开发或运维过程中,由于操作不当,引起的误删Oracle数据库表或指定表的数据内容,导致程序出现故障;而我们又没有对数据库进行备份,此时,如果不能及时恢复数据库内容将会导致严重的事故。我们需要一种能够补救的方法来挽回损失,恢复被误删的表或…

如何选择最适合自己的工厂模式?从产品种类、数量、工厂数量角度出发!

在Java中&#xff0c;根据工厂模式的实现方式和用途&#xff0c;我们可以将工厂模式分为以下几种类型&#xff1a; 简单工厂模式 简单工厂模式&#xff08;Simple Factory Pattern&#xff09;是一种最基本的工厂模式&#xff0c;在该模式中&#xff0c;我们可以定义一个工厂…

【AI生产力工具】Midjourney:为创意人士提供创造性灵感和支持的工具

文章目录 一、Midjourney是什么&#xff1f;二、Midjourney的优势三、Midjourney的应用四、结语 在现代社会&#xff0c;创意和创新成为越来越重要的能力。然而&#xff0c;创意灵感的获取却不是一件容易的事情&#xff0c;这就需要我们使用一些辅助工具来帮助我们发现和实现创…

openGauss数据库pg_xlog爆满问题解决

文章目录 问题现象问题定位解决办法总结 问题现象 最近有一个之前搭的环境登不上了&#xff0c;好久没用想拿来测试的时候发现启动不了。启动时报错&#xff1a; [Errno 28] No space left on device query也不行了&#xff0c;提示没有空间了。 查询磁盘使用情况 df -h …