首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么在MySQL中事务阻塞简单插入?

为什么在MySQL中事务阻塞简单插入?
EN

Database Administration用户
提问于 2021-05-10 23:21:45
回答 1查看 289关注 0票数 0

事务查询

代码语言:javascript
运行
AI代码解释
复制
    mysqli_begin_transaction($conn);
    $sql = "UPDATE foldertable SET trashed = 1 WHERE serverToken = (SELECT serverToken from servertoken where userToken = ? limit 1) and 
    
    (folderId = ?
    or 
    RootFolderPath LIKE 
                CONCAT (
                    (SELECT RootFolderPath FROM foldertable WHERE serverToken = (SELECT serverToken from servertoken where userToken = ? ) AND folderid = ? limit 1)
                    ,'/'
                    , ?
                    ,'%'

                )
    )";
    $stmt =  mysqli_stmt_init($conn);
    mysqli_stmt_prepare($stmt, $sql);
    mysqli_stmt_bind_param($stmt, "sisii", $data["userToken"], $id, $data["userToken"], $id, $id);
    if (!mysqli_stmt_execute($stmt)) {
        echo mysqli_stmt_error($stmt);
        $serverError = true;
        return;
    }
    // echo "\n\n affected rows " . mysqli_affected_rows($conn);
    if (mysqli_affected_rows($conn) > 0) {
        sleep(15);
        // Insert into bin folder
        $sql = "INSERT INTO binfolder (serverToken , folderId) value ( (SELECT serverToken from servertoken where userToken = ? limit 1) , ?)";
        $stmt =  mysqli_stmt_init($conn);
        mysqli_stmt_prepare($stmt, $sql);
        mysqli_stmt_bind_param($stmt, "si", $data["userToken"], $id);
        if (!mysqli_stmt_execute($stmt)) {
            echo mysqli_stmt_error($stmt);
            $serverError = true;
            return;
        }
        if (mysqli_affected_rows($conn) > 0) {
            $success = true;
            mysqli_commit($conn);
        }

    }

插入查询

代码语言:javascript
运行
AI代码解释
复制
INSERT INTO foldertable(serverToken) SELECT (123456) 

问题

如果在事务启动后执行insert查询,但插入不必等待事务完成。因为事务的update查询确实锁定了insert查询所涉及的行。

我想要什么

如果Insert查询不包含插入查询中所需的相同serverToken,则插入查询将立即运行。

提前谢谢你。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2021-05-11 09:10:41

对于事务阻塞,第一道防线是加快查询速度。虽然这并不能完全消除阻塞/延迟/死锁的可能,但它通常会使这种情况更容易容忍。

LIMIT 1吗?--只有一个吗?如果是这样的话,为什么不做一个JOIN。或者可能有不止一个?如果是,是哪一个?也就是说,你不需要一个ORDER BY吗?

servertoken需要INDEX(userToken, serverToken)

一个INSERT ... ON DUPLICATE KEY UPDATE ...是否足以满足您冗长的查询集?如果是这样的话,它可能会快得多。

我在long查询中看到一个OR。这可能会阻止索引的使用。(我不太理解这个查询的意图,无法提出一个替代方案。)

"RootFolderPath喜欢CONCAT (.“) --这闻起来像是应该重新设计的东西。考虑将路径部分放在单独的列中吗?或者别的什么。

folderIdPRIMARY KEY of folderTable吗?

请为每个相关表提供SHOW CREATE TABLE (作为文本,而不是图像)。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/291347

复制
相关文章
每个前端工程师都应该了解的图片知识(长文建议收藏)
随着web的发展,网站资源的流量也变得越来越大。据统计,60% 的网站流量均来自网站图片,可见对图片合理优化可以大幅影响网站流量,减小带宽消耗和服务器压力。
coder_koala
2019/09/17
1.1K0
每个前端工程师都应该了解的图片知识(长文建议收藏)
每个前端工程师都应该了解的图片知识(长文建议收藏)
随着web的发展,网站资源的流量也变得越来越大。据统计,60% 的网站流量均来自网站图片,可见对图片合理优化可以大幅影响网站流量,减小带宽消耗和服务器压力。
桃翁
2019/05/31
1.4K0
探索现代图片格式:从GIF到HEIF,优势与适用场景一览
每个像素所能显示的彩色数为2的8次方,即256种颜色。这种彩色深度适用于较古老的显示设备和简单的图像场景。它在色彩表现方面相对较弱,颜色过渡可能显得不够平滑,导致图像呈现出颗粒感,不适合表现细腻的色彩变化。
linwu
2023/07/27
8450
探索现代图片格式:从GIF到HEIF,优势与适用场景一览
动态图片技术 : 历史、格式与性能
本文介绍了动态图片编码、解码、格式、性能和应用场景方面的知识,并给出了详细的对比结果。
QQ音乐技术团队
2017/09/21
3.9K0
动态图片技术 : 历史、格式与性能
Python分离GIF动画成为多帧图像
首先需要使用命令pip install pillow安装Python扩展库pillow。 from PIL import Image import os gifFileName = 'test.gif' #使用Image模块的open()方法打开gif动态图像时,默认是第一帧 im = Image.open(gifFileName) pngDir = gifFileName[:-4] #创建存放每帧图片的文件夹 os.mkdir(pngDir) try: while True: #保存当前帧图片
Python小屋屋主
2018/04/16
1.7K0
一道图片隐写题引发的思考
下载附件,只有一张图片,后缀为png格式,用010editor查看并不能找到什么由出题人写入的额外的信息,而常见的png隐写方式zsteg、LSB,经过我的各种尝试,也无法解出任何信息,一时间想不到该怎么解这道题,在网上也查不到有关该题的wp,于是我点开了solved列表,刚好在里面发现了一个熟悉的名字
回天
2023/04/25
4680
一道图片隐写题引发的思考
全面掌握移动端主流图片格式的特点、性能、调优等
图片通常是移动端应用流量耗费最多的部分,并且占据着重要的视觉空间。以大家最常用的即时通讯IM应用为例,应用中存在大量的图片数据往来(比如图片消息、用户相册、用户头像等等)。合理的图片格式选用和优化不仅能减小图片传递过程中的数据量、提升视觉效果,还能显著降低服务端的带宽、计算资源等基础设施成本,一举多得。
JackJiang
2018/08/29
1.9K0
动画菜鸡的自我救赎之企鹅辅导品牌页开发总结
一般来说,品牌介绍页都是少不了各种动画的。这里我列出了辅导品牌页的三个主要的动画,后面我会讲我的实现
IMWeb前端团队
2019/12/06
1.8K0
Android动画-Drawable Animation(帧动画)
Drawable Animation是逐帧动画,就像GIF图片,通过一系列Drawable依次显示来模拟动画的效果,那么使用它之前必须先定义好各个帧。我们可以通过代码定义,也可以使用xml文件定义,一般使用后者
码客说
2019/10/22
9320
[android] 帧动画和补间动画
添加<animation-list>节点,设置是否循环android:oneshot:”false”
唯一Chat
2019/09/10
7560
Android 动画总结(2) - 帧动画
Frame Animation,也叫 Drawable Animation,原理就类似视频快速播放一帧一帧的图片。一般场景下很少使用,工作中遇到的是有时会有背景色,用若干颜色值变化,有时一个 View 要弹跳,其实是做好了若干切图,图片大小一致,但里面的内容处于不同位置,然后播放起来看着好像是在弹跳。
三流之路
2018/09/11
9450
Android 动画总结(2) - 帧动画
图片一键压缩,支持批量压缩
最近在写项目时用到了很多图片,由于考虑到图片过大会占用许多服务器资源所以就想到了去压缩图片,但是由于图片太多所以用photoshop操作也挺麻烦就找到了一个网站,如下
用户10106350
2022/10/28
1.2K0
Android实现帧动画
android:oneshot=”true”当为true时表示只播放一次,为false时表示循环播放;
程序员飞飞
2020/02/27
6600
Lottie在手,动画我有:ios/Android/Web三端复杂帧动画解决方案
本文编辑于OS X系统,之前出现过windows下看不到部分图片的情况,如有请大家告知
啦啦啦321
2019/09/29
3.6K0
Lottie在手,动画我有:ios/Android/Web三端复杂帧动画解决方案
不一样的动图-APNG
动图 说到动图,首先我们想到的 GIF 格式,GIF 在网络上流行已久,各种动态表情包都是 GIF 图做的。 但是 GIF 的缺点也很明显,透明背景的 GIF 无法做到像素的绝对平滑过度,于是乎我们可以看到带透明的 GIF 图周围杂边非常明显,如下: image.png 通常解决这种问题是在外面加上一圈白色的描边,这样在白色背景下可以掩盖杂边问题,但是在深色背景下依然无解: image.png APNG 完美的解决了这个问题。 APNG APNG 全称是 Animated Portable Netw
Bob.Chen
2018/05/02
7.8K0
不一样的动图-APNG
复杂帧动画之移动端video采坑实现
Airbnb 开源项目,通过解析 AE 动画为 json 数据,支持跨平台的动画效果解决方案;lottie 在辅导中已经有实际应用,使用过的同学都表示对其实现效果和开发速度表示称赞和推荐。
IMWeb前端团队
2019/12/04
2.4K0
TimePicker控件、帧动画、补间动画
1.TimePicker控件 最近感觉每个开发平台的控件基本都差不多,在Android中控件的事件和.net控件直接写事件有一定的区别,net事件可以直接界面进行事件的绑定哈。不过在Silverlight中,如果用MVVM设计模式的话,也可以自己为控件写Command命令的,可以取代控件的事件。 TimePicker控件,也就是事件控件,可以用设置时间的。在页面拖入控件后,默认是显示系统时间的。 1 <TimePicker 2 android:id="@+id/timePicker1
水击三千
2018/02/27
9080
复杂帧动画之移动端video采坑实现
本文由 IMWeb 首发于 IMWeb 社区网站 imweb.io。点击阅读原文查看 IMWeb 社区更多精彩文章。 在企鹅辅导品牌页中,我们需要实现一个动画如下: 页面滚动到动画区域,播放动画, 对应动画部分如下: 帧动画当前的实现有以下几种方式: GIF 动画 大家比较熟悉的图片格式 lottie(http://airbnb.io/lottie/) Airbnb 开源项目,通过解析 AE 动画为 json 数据,支持跨平台的动画效果解决方案;lottie 在辅导中已经有实际应用,使用过的同学都表示
用户1097444
2022/06/29
2.4K0
复杂帧动画之移动端video采坑实现
高性能动画组件VAP开源啦!
VAP(Video Animation Player)是企鹅电竞开发,用于播放酷炫动画的实现方案。 相比Webp,Apng动图方案,具有高压缩率(素材更小)、硬件解码(解码更快)的优点 相比Lottie,能实现更复杂的动画效果(比如粒子特效) 特效展示 VAP还能在动画中融入自定义的属性(比如用户名称, 头像) 支持平台 Android, iOS, web 性能简述 VAP在文件大小与解码性能上有很大的优势,实验参数请参考github:https://github.com/Tencent/va
腾讯开源
2020/09/08
5K1
点击加载更多

相似问题

使用xslt从xml获取数据

10

使用XSLT获取XML标记值

00

使用xslt从xml获取值

12

使用XSLT从XML获取数据

21

使用xslt从xml获取属性

32
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档