mysql锁表更新_Mysql InnoDB 数据更新导致锁表

一、数据表结构

CREATE TABLE `jx_attach` (

`attach_id` int(11) NOT NULL AUTO_INCREMENT,

`feed_id` int(11) DEFAULT NULL ,

`attach_name` varchar(255) NOT NULL,

`cycore_file_id` varchar(255) DEFAULT NULL ,

`attach_size` bigint(20) NOT NULL DEFAULT '0',

`complete` smallint(6) NOT NULL DEFAULT '0' ,

PRIMARY KEY (`attach_id`),

KEY `jx_trend_attach_FK` (`feed_id`) USING BTREE

) ENGINE=InnoDB AUTO_INCREMENT=394160 DEFAULT CHARSET=utf8;

二、现象

当多个连接同时对一个表的数据进行更新操作,那么速度将会越来越慢,持续一段时间后将出现数据表被锁,从而影响到其它的查询及更新。

存储过程循环30次更新操作

/*30次更新操作*/

BEGIN

DECLARE v1 INT DEFAULT 30;

WHILE v1 > 0 DO

update jx_attach set complete=1,attach_size=63100 where cycore_file_id='56677142da502cd8907eb58f';

SET v1 = v1 - 1;

END WHILE;

END

执行结果(速度非常慢)

时间: 29.876s

Procedure executed successfully

受影响的行: 0

200个数据更新操作,三个数据库连接同时执行

update jx_attach set complete=1,attach_size=63100 where cycore_file_id='56677142da502cd8907eb58f';

update jx_attach set complete=1,attach_size=63100 where cycore_file_id='56677142da502cd8907eb58f';

update jx_attach set complete=1,attach_size=63100 where cycore_file_id='56677142da502cd8907eb58f';

update jx_attach set complete=1,attach_size=63100 where cycore_file_id='56677142da502cd8907eb58f';

update jx_attach set complete=1,attach_size=63100 where cycore_file_id='56677142da502cd8907eb58f';

update jx_attach set complete=1,attach_size=63100 where cycore_file_id='56677142da502cd8907eb58f';

...等等

执行结果(持续一段时间后速度越来越慢,出现等待锁)

# Time: 151208 22:41:24

# User@Host: zmduan[zmduan] @ [192.168.235.1] Id: 2

# Query_time: 1.848644 Lock_time: 0.780778 Rows_sent: 0 Rows_examined: 393382

SET timestamp=1449643284;

update jx_attach set complete=1,attach_size=63100 where cycore_file_id='56677142da502cd8907eb58f';

.........

........

# User@Host: zmduan[zmduan] @ [192.168.235.1] Id: 2# Query_time:2.868598 Lock_time: 1.558542 Rows_sent: 0 Rows_examined: 393382

SET timestamp=1449643805;update jx_attach set complete=1,attach_size=63100 where cycore_file_id='56677142da502cd8907eb58f';[root@localhost log]# tail -f slow_query.log#User@Host: zmduan[zmduan] @ [192.168.235.1] Id: 19# Query_time:1.356797 Lock_time: 0.000169 Rows_sent: 1 Rows_examined: 393383

SET timestamp=1449643805;SELECT *

FROMjx_attach ja,jx_feed jfwhere ja.feed_id=jf.feed_id and ja.cycore_file_id='56677146da502cd8907eb5b7';

#User@Host: zmduan[zmduan] @ [192.168.235.1] Id: 2# Query_time:2.868598 Lock_time: 1.558542 Rows_sent: 0 Rows_examined: 393382

SET timestamp=1449643805;update jx_attach set complete=1,attach_size=63100 where cycore_file_id='56677142da502cd8907eb58f';

三、原因分析

MySQL的innodb存储引擎支持行级锁,innodb的行锁是通过给索引项加锁实现的,这就意味着只有通过索引条件检索数据时,innodb才使用行锁,否则使用表锁。根据当前的数据更新语句(update jx_attach set complete=1,attach_size=63100 where cycore_file_id='56677142da502cd8907eb58f';),该条件字段cycore_file_id并没有添加索引,所以导致数据表被锁。

四、解决办法

为cycore_file_id添加索引

五、最终效果(30次更新操作)

时间: 0.094s

Procedure executed successfully

受影响的行: 0

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

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

相关文章

Java异步非阻塞编程的几种方式

简介: Java异步非阻塞编程的几种方式 一、 从一个同步的Http调用说起 一个很简单的业务逻辑,其他后端服务提供了一个接口,我们需要通过接口调用,获取到响应的数据。 逆地理接口:通过经纬度获取这个经纬度所在的省市区…

张一鸣 90 亿购得元宇宙入场券,谁将是头号玩家?

整理 | 禾木木 出品 | CSDN云计算(ID:CSDNcloud) VR 技术不断发展,虚拟网络世界“元宇宙”的概念也愈加火热,VR 已经不再局限于游戏与影视,它将作为降本增效的工具服务于更多行业领域。 8月29日&#xf…

前端开发:如何正确地跨端?

简介: 面对多种多样的跨端诉求,有哪些跨端方案?跨端的本质是什么?作为业务技术开发者,应该怎么做?本文分享阿里巴巴ICBU技术部在跨端开发上的一些思考,介绍了当前主流的跨端方案,以及…

mysql 创建表check如何使用_MySQL怎么使用check约束

在数据库中,CHECK 约束是指约束表中某一个或者某些列中可接受的数据值或者数据格式(用于限制列中的值的范围)。在一些情况下,我们需要字段在指定范围的输入,例如:性别只能输入 男或者女,余额只能大于0等条件&#xff0…

2020年,这个算法团队都干了啥?

简介: 什么是算法?什么是广告算法工程师?算法工程师又是如何定义的?今天作者将就算法、电商算法为主题和我们分享他的理解,同时还将和我们分享ICBU算法团队的整体工作和2020年的一些重要技术突破。 写在最前 我个人有…

Mendix将升级低代码软件开发平台,发布全新数字化生态系统、行业云

编辑 | 宋 慧 供稿 | Mendix 企业低代码应用开发全球领导者Mendix, a Siemens business在Mendix World 2021大会上宣布推出全新升级的数字化生态系统。Mendix World 2021大会也是全球规模最大的低代码创客与专家在线大会。借助Mendix平台的新功能,Mendix 创客社区的…

为了让你在“口袋奇兵”聊遍全球,Serverless 做了什么?

简介: 江娱互动是一家新兴的游戏企业,自 2018 年成立伊始,江娱互动就面向广阔的全球游戏市场,通过创造有趣的游戏体验,在竞争激烈的游戏市场占得一席之地。仅仅 2 年的时间,江娱互动就凭借 Topwar&#xff…

mysql批量插入 增加参数_MySql 的批量操作,要加rewriteBatchedStatements参数

MySql 的批量操作,要加rewriteBatchedStatements参数作者:赵磊博客:http://elf8848.iteye.com--------------------------------结论 ---------------------------------MySql 非批量 10万条记录, 5700条/秒MyS…

为开发者而生 | 2021 SuperMap开发者大会议程全公布

如果地理信息产业是一片江湖 SuperMap开发者大会 则是一场卧虎藏龙的群英会 技术卓越的大侠们在此一展风采 精通各路应用的绝世门派在此切磋技艺 一起修炼顶级武功秘籍 致敬技术极客精神 为开发者而生(D4D) 9月15日-18日 2021 SuperMap开发者大会…

Flink 如何实时分析 Iceberg 数据湖的 CDC 数据

简介: 数据湖的架构中,CDC 数据实时读写的方案和原理 本文由李劲松、胡争分享,社区志愿者杨伟海、李培殿整理。主要介绍在数据湖的架构中,CDC 数据实时读写的方案和原理。文章主要分为 4 个部分内容: 常见的 CDC 分析…

mysql 加载数据校验_mysql 导入数据后的校验程序

参考mysql导入样本数据库employees之后的数据校验,可以使用md5或者sha,原理与思路:首先在将要备份的数据库中生成每个表里的每行每列数据的累加计算md5值,接着hardcode在测试单元文件中,作为期望值。以下是md5的校验方…

如何通过事务消息保障抢购业务的分布式一致性?

简介: 在柔性事务的多种实现中,事务消息是最为优雅易用的一种。基于阿里云RocketMQ高性能、高可用的特点,完全可以胜任抢购业务这类高并发大流量的场景。但引入事务消息机制在实现高性能的同时,也增加了整体的业务复杂度。我们需要…

海量秋招面试资料等你来拿!你离大厂也许并不远

秋招在即,你还在为秋招如何准备而发愁吗?你还在为拿不到大厂offer而苦恼吗?工欲善其事,必先利其器。金秋开学季,CSDN助力你的技术学习与成长,为你免费提供海量大厂面试资料,让你的秋招不再慌乱&…

基于Ganos百行代码实现亿级矢量空间数据在线可视化

简介: 本文介绍如何使用RDS PG或PolarDB(兼容PG版或Oracle版)的Ganos时空引擎提供的数据库快显技术,仅用百行代码实现亿级海量几何空间数据的在线快速显示和流畅地图交互,且无需关注切片存储和效率问题。 01 引言 如何…

mysql 防注入 php_PHP+mysql防止SQL注入的方法小结

本文实例讲述了PHPmysql防止SQL注入的方法。分享给大家供大家参考,具体如下:SQL注入例:脚本逻辑$sql "SELECT * FROM user WHERE userid $_GET[userid] ";案例1:SELECT * FROM t WHERE a LIKE %xxx% OR (IF(NOWSYSDAT…

流批一体生产应用!Bigo 实时计算平台建设实践

简介: 本文由 Bigo 计算平台负责人徐帅分享,主要介绍 Bigo 实时计算平台建设实践的介绍 本文由 Bigo 计算平台负责人徐帅分享,主要介绍 Bigo 实时计算平台建设实践的介绍。内容包括: Bigo 实时计算平台的发展历程特色与改进业务场…

一部手机是否能用 7 年?苹果、三星、Google:三年差不多!

整理 | 苏宓出品 | CSDN(ID:CSDNnews)一部手机如果可以流畅地使用 7 年,是种什么样的感觉:有人说,这对于 iPhone 而言,或许会很轻松做到,但也会给一些平价的 Android 手机制造商带来…

五福背后的 Web 3D 引擎 Oasis Engine 正式开源

简介: Oasis 从开源走向新的起点,用 3D 化的交互和表达让世界变得更美好。 相信大家已经体验了今年支付宝五福的活动,无论是今年的五福首页还是打年兽游戏都是由蚂蚁互动图形引擎(代号:Oasis Engine)驱动的…

mysql驱动profilesql_java连接mysql的驱动配置问题

想用java访问mysql数据库,下载了一个驱动,然后根据网上说的,配置了classpath,结果失败,原因是ClassNotFoundException,然后继续往上搜索,最后将该驱动放置到jdk\lib\ext目录下,...想…

我用 Python 自制成语接龙小游戏,刺激!

作者:小小明原文链接:https://blog.csdn.net/as604049322/article/details/118154687本文为读者投稿在 https://github.com/pwxcoo/chinese-xinhua 项目中可以下载到中华成语的语料库,该项目收录包括 14032 条歇后语,16142 个汉字…