mysql中update会锁表吗

mysql中update会不会锁表的两种情况:1、update没有索引时,语句前面一个事务通过commit提交,命令会正常运行结束,则update会锁表;2、update添加索引时,命令不会卡住,不会锁表,但会更新同一行导致锁行。

mysql中update会锁表吗

本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。

mysql中update会锁表吗

如果没有索引,所以update会锁表,如果加了索引,就会锁行

当前面一个事务通过commit提交了,命令就会正常运行结束,说明是被锁表了。

两种情况:

1、带索引 

2、不带索引

前提介绍:

方式:采用命令行的方式来模拟

1.mysq由于默认是开启自动提交事务,所以首先得查看自己当前的数据库是否开启了自动提交事务。

命令:select @@autocommit;

结果如下:

28.png

如果是1,那么运行命令:set autocommit = 0;设置为不开启自动提交

2.当前的数据库表格式如下

凡人网络购物系统jsp版(JspShop) 凡人网络购物系统jsp版(JspShop)

基于jsp+javabean+access(mysql)三层结构的动态购物网站,v1.2包含v1.0中未公开的数据库连接 的java源文件 一,网站前台功能: 产品二级分类展示:一级分类--二级分类--产品列表--详细介绍(名称,图片,市场价,会员价,是否推荐,功能介绍等) 产品搜索:关键字模糊搜索 定购产品:选择商品--确认定购--填写收货人信息--选择付款方式--订单号自动生成(限登录用户)

凡人网络购物系统jsp版(JspShop) 0 查看详情 凡人网络购物系统jsp版(JspShop)

tb_user | CREATE TABLE `tb_user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(32) DEFAULT NULL, `phone` varchar(11) DEFAULT NULL, `operator` varchar(32) DEFAULT NULL, `gmt_create` datetime DEFAULT NULL, `gmt_modified` datetime DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8

显然除了主键,我没有加任何索引

实际例子:

1.没有索引

运行命令:begin;开启事务,然后运行命令:update tb_user set phone=11 where name=”c1″;修改,先别commit事务。

再开一个窗口,直接运行命令:update tb_user set phone=22 where name=“c2”;会发现命令卡住了,但是当前面一个事务通过commit提交了,命令就会正常运行结束,说明是被锁表了。

2.给name字段加索引

create index index_name on tb_user(name);

然后继续如1里面的操作,也就是一个开启事务,运行update tb_user set phone=11 where name=”c1″;先不提交

然后另一个运行update tb_user set phone=22 where name=”c2″;发现命令不会卡住,说明没有锁表

但是如果另一个也是update tb_user set phone=22 where name=”c1″;更新同一行,说明是锁行了

3.总结

如果没有索引,所以update会锁表,如果加了索引,就会锁行

推荐学习:mysql视频教程

以上就是mysql中update会锁表吗的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/762749.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月26日 01:42:07
下一篇 2025年11月26日 01:42:30

相关推荐

  • Django RawQueryset参数绑定错误及ORM优化实践

    本文深入探讨了django `rawqueryset`在使用过程中常见的参数绑定错误,特别是`programmingerror: type ‘builtin_function_or_method’ is not supported`。通过分析错误根源——误将python内置`…

    2025年12月14日
    000
  • 使用Pydantic和Streamlit回调实现持久化应用状态到JSON

    本教程详细介绍了如何在Streamlit仪表板中实现应用状态的JSON持久化。我们将利用Pydantic定义结构化的应用状态模型,并通过其内置的序列化方法将状态高效地保存为JSON文件。文章还将展示如何结合Streamlit的`on_change`回调机制,在用户交互时自动触发状态保存,并提供从JS…

    2025年12月14日
    000
  • Windows 环境下 Pip 丢失后的快速恢复教程

    本教程旨在指导用户在 windows 操作系统中,当 pip 命令意外丢失或无法识别时,如何无需重新安装 python 即可快速恢复 pip 功能。文章将详细介绍通过 get-pip.py 脚本下载、执行及验证 pip 重新安装的完整步骤,确保您能够顺利恢复 python 包管理器的正常使用,以便继…

    2025年12月14日
    000
  • 在Python Flask中将在线图片URL转换为Blurhash编码

    本教程详细指导如何在Python Flask应用中,将远程在线图片的URL转换为Blurhash编码。针对官方库主要展示本地文件处理的局限,文章将重点介绍如何通过网络请求获取图片内容,并将其作为文件流传递给Blurhash编码器,从而生成轻量级的图片占位符。 1. Blurhash简介及其优势 Bl…

    2025年12月14日
    000
  • Windows系统下使用get-pip.py快速恢复Pip的详细教程

    本教程旨在为windows用户提供一个无需重新安装python即可恢复或重新安装pip包管理器的详细指南。当pip命令意外丢失或损坏时,用户可能无法安装python模块。通过利用`get-pip.py`脚本,本教程将引导您完成从下载到验证的整个过程,确保您能在powershell或命令提示符中高效地…

    2025年12月14日
    000
  • Python代码怎么调试_Python代码调试方法与工具使用指南

    调试Python代码需根据项目复杂度选择合适方法:简单脚本可用print语句快速输出状态;02. 内置pdb模块支持断点与单步执行,Python 3.7+推荐使用breakpoint()更简洁;03. IDE如PyCharm、VS Code提供图形化调试界面,便于管理断点与查看变量;04. logg…

    2025年12月14日
    000
  • 在Python中配置GCP工作负载身份联合凭证:从gcloud命令到SDK实现

    本文旨在提供一份全面的教程,指导开发者如何在Python环境中实现Google Cloud Workload Identity Federation (WIF) 的客户端凭证配置。我们将探讨如何替代`gcloud iam workload-identity-pools create-cred-con…

    2025年12月14日
    000
  • Python调用API接口如何分页获取数据_Python调用API接口实现分页查询数据的技巧

    答案:通过页码、偏移量或游标方式循环请求API分页数据,结合响应信息判断是否继续,并添加延迟与重试机制以确保稳定性。 如果您需要从API接口获取大量数据,但响应结果被限制为分页形式,则必须通过循环请求每一页来获取完整数据集。以下是实现分页查询的常用技巧和方法: 一、基于页码的分页获取 许多API使用…

    2025年12月14日
    000
  • 使用Python模拟API请求抓取Yahoo Finance历史财报数据

    本教程旨在解决使用python抓取yahoo finance动态加载财报数据的问题。由于yahoo finance的财报页面内容通过javascript动态加载,传统的beautifulsoup直接解析html的方法往往无法获取完整数据。我们将深入探讨如何通过模拟浏览器api请求,直接从yahoo …

    2025年12月14日
    000
  • Python爬虫怎么写_Python网络爬虫编写步骤与实战案例

    答案:编写Python爬虫需先分析网页结构,用requests发送请求获取HTML,再用BeautifulSoup解析提取数据,最后清洗并存储为CSV或数据库;以豆瓣电影Top250为例,通过设置headers、分页爬取、解析class标签获取电影名、评分等信息,保存为CSV文件,并注意遵守robo…

    2025年12月14日
    000
  • 优化大规模细胞突变模拟:使用Numba提升Python/NumPy性能

    本文探讨了在python中模拟大规模细胞突变时遇到的性能瓶颈,特别是在处理数亿个细胞的数组操作和随机数生成方面。针对numpy在处理此类任务时的效率问题,文章提出并详细阐述了如何利用numba进行即时编译和优化,包括高效的整数型随机数生成、减少内存访问以及启用并行计算。通过这些优化,模拟速度可显著提…

    2025年12月14日
    000
  • 持久化ChromaDB向量嵌入:避免重复计算的教程

    本教程详细介绍了如何使用chromadb的`persist_directory`功能来高效地保存和加载向量嵌入数据库,从而避免重复计算。通过指定一个持久化目录,用户可以轻松地将生成的嵌入结果存储到本地文件系统,并在后续操作中直接加载,极大地节省了时间和计算资源。文章提供了清晰的代码示例和关键注意事项…

    2025年12月14日
    000
  • 解决Kaggle环境中DuckDuckGo API调用HTTP错误指南

    在使用kaggle jupyter notebook进行机器学习课程(如fast.ai)时,调用`duckduckgo_search`库进行图片搜索可能会遇到`httperror`。本文将深入分析此问题的原因,并提供一个简单而有效的解决方案:通过更新kaggle notebook的环境配置,确保使用…

    2025年12月14日
    000
  • Python中实现+=操作符的动态类型处理策略

    本文探讨在Python中创建变量,使其能够灵活地通过`+=`操作符处理字符串和整数等不同初始数据类型的方法。文章将介绍两种核心模式:`StringBuilder`模式,用于将所有操作统一为字符串拼接;以及`UniversalIdentity`模式,通过自定义运算符重载,使变量能够动态适配第一个操作数…

    2025年12月14日
    000
  • Python环境管理深度解析:理解pipx与虚拟环境的正确应用

    本文深入探讨python包管理工具pipx与传统虚拟环境(如venv)之间的关键差异和正确应用场景。我们将解释为何pipx安装的库无法直接导入到python脚本中,因为其设计宗旨是为命令行应用程序提供隔离环境。教程将指导用户如何利用虚拟环境正确安装和管理项目所需的python库,确保模块可导入性,并…

    2025年12月14日
    000
  • Django Simple JWT 刷新令牌轮换与页面刷新策略

    在使用Django Simple JWT并启用刷新令牌轮换(`ROTATE_REFRESH_TOKENS`)时,快速页面刷新可能导致令牌在接收新令牌前被黑名单。本文将深入探讨此问题,并提供一种更健壮的解决方案:通过利用现有访问令牌处理页面加载,并在访问令牌过期时采用同步刷新机制,从而避免不必要的刷新…

    2025年12月14日
    000
  • 使用Python和Selenium抓取动态网页数据教程

    本教程旨在指导读者如何使用python结合selenium和beautifulsoup库,有效抓取包含切换按钮等动态交互元素的网页数据。文章将详细阐述传统静态网页抓取方法在处理此类场景时的局限性,并提供一套完整的解决方案,通过模拟用户浏览器行为来获取动态加载的内容,最终实现对目标数据的精确提取。 在…

    2025年12月14日
    000
  • 在Windows上正确执行nbdev导出与本地包安装教程

    本教程旨在解决在Windows环境下使用nbdev时,如何正确结合`nbdev_export`命令与本地包安装。文章将详细解释`pip install .`(或`pip install -e .`)的用法,以确保nbdev导出的模块能够被项目正确识别和导入,并提供跨平台命令执行的注意事项及最佳实践。…

    2025年12月14日
    000
  • 在Streamlit应用中高效展示本地GIF集合的教程

    本教程详细阐述了如何在streamlit应用中加载并显示来自本地文件夹的多个gif图片。通过利用python的glob模块进行文件路径匹配,结合base64编码将gif内容嵌入到html的标签中,我们提供了一种健壮且跨平台兼容的解决方案。文章将涵盖环境配置、代码实现细节以及关键注意事项,确保用户能够…

    好文分享 2025年12月14日
    000
  • Python并发编程:解决无限循环阻塞与实现任务并行

    本教程旨在解决Python中无限循环阻塞后续代码执行的问题,特别是当需要同时运行后台任务(如打印消息)和周期性操作(如窗口管理)时。我们将探讨从简单调整代码结构到利用Python的`threading`模块实现真正并发执行的多种方法,确保应用程序的响应性和效率。 引言:理解无限循环的阻塞效应 在Py…

    2025年12月14日
    000

发表回复

登录后才能评论
关注微信