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

这篇具有很好参考价值的文章主要介绍了mysql 学习存储过程:一次插入 10W 条记录、卡死了怎么办。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

存储过程简要规范:

  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)
     BEGIN
     DECLARE i INT DEFAULT 1;
     START TRANSACTION;
     WHILE i<= i_total DO
     INSERT 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)
     BEGIN
     DECLARE i INT DEFAULT 1;
     /* START TRANSACTION;*/
     WHILE i<=i_total DO
     INSERT 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_20230414
                     Name: proc_insert_person
                     Type: PROCEDURE
                  Definer: root@%
                 Modified: 2023-04-22 16:29:46
                  Created: 2023-04-22 16:29:46
            Security_type: DEFINER
                  Comment: 
     character_set_client: utf8mb4
     collation_connection: utf8mb4_0900_ai_ci
       Database Collation: utf8mb4_0900_ai_ci
     *************************** 2. row ***************************
                       Db: test_20230414
                     Name: proc_insert_person_without_transaction
                     Type: PROCEDURE
                  Definer: root@%
                 Modified: 2023-04-22 16:39:52
                  Created: 2023-04-22 16:39:52
            Security_type: DEFINER
                  Comment: 
     character_set_client: utf8mb4
     collation_connection: utf8mb4_0900_ai_ci
       Database Collation: utf8mb4_0900_ai_ci
     2 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 掉哪个进程文章来源地址https://www.toymoban.com/news/detail-427970.html

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

到了这里,关于mysql 学习存储过程:一次插入 10W 条记录、卡死了怎么办的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • win10右键一直卡死解决记录

    网上删除注册表中除news外的所有键值还是无法解决卡死问题,于是找到了这个方法,终于治好了右键卡死问题,特此记录。 【方法A】“干净启动”,排除第三方软体的影响: 停止非核心的程序运作(包括第三方杀毒、优化软体) 情况允许的话,卸载设备中的第三方杀毒、

    2024年02月08日
    浏览(31)
  • 研一小白记录第一次在实验室服务器上跑深度学习的代码全过程(实验室服务器上跑代码详细全过程哦)

    你在服务器上跑过代码吗?哇~你跑过!是啥样的...每回见别人跑都会问并且羡慕会在大服务器上跑代码的哈哈哈在研究生刚开学前还甚至不知道什么是服务器,更是无法想象在除了自己能看得见摸得着的电脑屏幕之外跑代码的样子。直到有天开会自己坐在了一个大大的“黑箱

    2024年02月02日
    浏览(53)
  • 用友U8存货档案数据库插入存储过程

    ALTER PROCEDURE addnew_inventory_zd     (       @ydhcz NVARCHAR(60) ,--存货分类编码回传       --@cInvCode NVARCHAR(60) ,--存货编码         @cInvName NVARCHAR(255) ,--存货名称         @cInvStd NVARCHAR(255) ,--规格型号        @cInvCCode NVARCHAR(12) ,--存货大类编码        @cCreatePersonCode NVARCHAR(20) ,--建档

    2024年02月07日
    浏览(41)
  • 记录一次使用unordered_set插入数据异常的问题

    问题和 unordered_set 有关,相关代码如下: 这些代码作为so提供给 程序A 调用,但是程序执行过程中发现,defined_task_variable 插入值后,printSet()方法应该遍历defined_task_variable,打印出其内部数据的,但实际上其打印出来的都是(null),且只在arm平台出现,且必现,但x86一切正常 相

    2024年04月08日
    浏览(41)
  • 记录一次Linux下ChatGLM部署过程

    本地化的GPT就是香,就是有点费钱。 项目地址:https://github.com/THUDM/ChatGLM-6B 由于本地电脑显卡都不行,所以我租了AutoDL的一台算力服务器。 Tesla T4 16G 显存,56GB内存,符合我们跑ChatGLM的配置。 其实本来这台服务器是其他用途,跑vits的,所以选择了so-vits-svc4的 镜像 ,这类的

    2024年02月09日
    浏览(44)
  • 记录一次开机内存分析的全过程

    作者:zzy的学习笔记 记录一次开机内存分析的全过程,尽量详尽的介绍常用内存分析工具和命令行的使用,结合具体问题探讨开机内存分析的实践经验。通过这篇文章我会介绍开机内存的常用测试分析工具的基本使用方法,以及如何通过抓取出来的内存数据得出下一步的分析

    2024年02月07日
    浏览(41)
  • 10w 字前端技术文档分析

    在 2023 年 11 月份,有小伙伴跟我说前端学习得很迷茫,不知道该学什么,也不知道已经学过的学得怎么样,于是,我立即萌生了一种想法,我要写一份 前端文档 ,既可以帮助我自己查漏补缺,也可以帮助到其他人。 经历了 2 个多月的不断努力,终于,我的文档在今天达到了

    2024年01月20日
    浏览(36)
  • 记录一次armbian系统搭建路由功能的失败过程

    根据 使用 Debian 作为路由器 :: 星野玲的博客 https://blog.bling.moe/post/3/ 优化ubuntu dns解析,关掉systemd-resolved - MR__Wang - 博客园 https://www.cnblogs.com/xzlive/p/17139520.html ChatGPT 背景需求,新入手了一款RK3568系列的小主机,带有2*2.5G+2*1G+WIFI的配置的,想要替换当前的新三路由器 三者相结合 最

    2023年04月25日
    浏览(31)
  • 千兆宽带只剩下百兆了,记录一次排查过程

    事情是这样的:昨晚PUBG有大更新,但是下载的时候我突然发现速度只剩下10M/s左右了,用speedtest测了下只剩下了百兆宽带,我家明明是千兆宽带的。然后就开始了排查,没想到这一搞就是3小时。 这是排查前我家的网络拓扑: 几点说明: 1.全部网络设备都是千兆口,还有几个

    2024年02月05日
    浏览(45)
  • 10W QPS 的会员系统,如何设计?

    来源:同程艺龙 会员系统是一种基础系统,跟公司所有业务线的下单主流程密切相关。如果会员系统出故障,会导致用户无法下单,影响范围是全公司所有业务线。所以,会员系统必须保证高性能、高可用,提供稳定、高效的基础服务。 随着同程和艺龙两家公司的合并,越

    2024年02月07日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包