最近再找一些Mysql锁表原因,整理出来一部分sql语句会锁表的,方便查阅,整理的不是很全,都是工作中碰到的,会持续更新
笔者能力有限,如果有不正确的,或者不到位的地方,还请大家指出来,方便你我,方便大家。
此测试环境
Mysql 5.5 基于innodb 引擎
-
insertintotable1valuesselect…fromtable2….
此种方法,会锁table2
-
deletetable1fromtable1innerjointable2ontable1.id=table2.id…
此种方法,会锁table2
-
updatetabel1,table2settable1.name=’feie’wheretable1.id=table2.id
此种方法,会锁table2
-
updatetabel1,table2settable1.name=’feie’wheretable1.id=table2.idandtable1.id=1;
此种方法,会锁table2.id=1的记录
-----------------------------------------第二次编辑分割线--------------------------------------
假设kid
是表table 的 一个索引字段 且值不唯一
1.如果kid 有多个值为12的记录那么:
update table set name=’feie’ where kid=12;
会锁表
2.如果kid有唯一的值为1的记录那么:
update table set name=’feie’ where kid=1;
不会锁
总结:用索引字段做为条件进行修改时, 是否表锁的取决于这个索引字段能否确定记录唯一,当索引值对应记录不唯一,会进行锁表,相反则行锁。
如果有两个delete
kid1 与 kid2是索引字段
语句1 delete from table where kid1=1 and kid2=2;
语句2 delete from table where kid1=1 and kid2=3;
这样的两个delete 是不会锁表的
语句1 delete from table where kid1=1 and kid2=2;
语句2 delete from table where kid1=1 ;
这样的两个delete 会锁表
总结:同一个表,如果进行删除操作时,尽量让删除条件统一,否则会相互影响造成锁表
分享到:
相关推荐
同时,记录错误日志有助于排查问题。 6. **性能优化**:PHP性能优化涉及代码优化、数据库查询优化和服务器配置调整等多个方面。例如,避免全局变量、减少数据库查询次数、使用缓存技术(如Memcached或Redis)、利用...
随着互联网技术的发展,传统的火车站窗口购票方式已经不能满足大众的需求,线上购票系统不仅方便了旅客,也减轻了车站的压力。PHP火车订票系统的设计与实现,旨在提供一个用户友好、安全可靠的在线购票平台,提高...
Vue.js是一款轻量级、高性能的JavaScript库,常用于构建用户界面,而Spring Boot是Java领域广泛使用的快速开发框架,尤其适合构建微服务和RESTful API。 1. **Vue.js**: Vue.js 是一个渐进式的JavaScript框架,它...
第三讲 Linux下的网络服务,配置问题和常用工具.................................................................24 一.Linux下的网络服务.....................................................................
目前,市面上已有许多成熟的电商平台,但大多数系统设计复杂,对于初学者来说存在一定的学习门槛。而Python语言以其简洁明了的语法特性,成为了许多初学者的首选。结合PHP的后端处理能力和MySQL数据库的高效存储,...
Python因其简洁易读的语法和强大的库支持,常被用于开发Web应用程序,而Django则是一个高级的Python Web框架,它提供了一整套解决方案,包括数据库交互、用户认证、URL路由等,非常适合构建这样的平台。 【描述】...
其语法简洁,功能强大,适合快速开发,且与MySQL数据库配合良好,是构建Web应用的理想选择。 2.2 MySQL MySQL是一款关系型数据库管理系统,具有高性能、高可靠性和易于管理的特点。在本系统中,MySQL将用于存储用户...
这个系统可能是为了帮助医疗机构实现线上预约挂号功能,提高服务效率,减少患者在医院现场等待的时间。源码分析可以帮助我们深入理解PHP在Web开发中的应用,尤其是医疗信息化领域。 【描述】"基于PHP的飘扬医院挂号...
3. **数据库交互**:PHP常与MySQL、SQLite等数据库配合使用,学习如何使用PHP的PDO(PHP Data Objects)或mysqli扩展进行数据查询、插入、更新和删除操作。 4. **Web框架**:如果系统使用了如Laravel、Symfony或...
Python作为一款强大的、易学易用的编程语言,因其丰富的库支持和简洁的语法特性,常被用于开发各种类型的软件,包括Web应用、数据处理和自动化任务等。在本项目中,Python的这些优势得以充分展现。 首先,让我们...
【标签】:“毕业设计 python”表明该项目的核心技术栈是Python语言,Python因为其简洁的语法和丰富的库资源,常用于web开发,特别是Django和Flask等框架,为快速构建web应用提供了便利。 【压缩包子文件的文件名称...
这个系统利用Java、JSP技术来实现,旨在提供一个高效、便捷的线上售票和管理平台。 【描述】:该压缩包“基于jsp的景区票务系统源码数据库.zip”显然是一个用于教学或实践目的的软件开发项目。通过解压后,我们可以...
这种类型的系统常用于各种线上线下活动,如促销、庆典或者营销活动中,以增加互动性和趣味性,吸引用户参与。 【描述解析】 描述中的"幸运九宫格抽奖系统带后台源码"进一步强调了该系统具备完整的源代码,意味着...
oTraining PHP在线培训系统是一款基于PHP开发的教育平台,用于提供线上课程、学习资源和互动教学功能。这个服务器安装包包含所有必要的组件,使你能够快速地在自己的服务器上搭建起一个完整的教育管理系统。让我们...
开发者需要对服务器运维有一定的了解,如Node.js环境的搭建、数据库如MySQL或MongoDB的安装和配置。 "nodejsgl9ig"可能是指使用了Node.js作为后端开发语言。Node.js是一个基于Chrome V8引擎的JavaScript运行环境,...
3. **企业建站**:企业建站系统应具备专业且灵活的模板设计,适应不同行业的需求,同时需要有良好的SEO优化功能,帮助企业提升在线可见度。此外,系统还应支持多语言、多设备兼容,满足全球化和移动互联网的需求。 ...
【标题】"zutzuTechTask" 涉及的是一个技术任务,可能是一个软件开发项目或者编程挑战,其中核心是使用PHP语言。...对于有经验的开发者,这可能是一个挑战性的任务,需要你运用创新和高效的方法解决问题。
Lua 是一种轻量级的脚本语言,常用于游戏开发中的扩展和脚本编写,因其简洁的语法和高效的执行而受到青睐。在 FiveM 中,Lua 通常用于创建服务器端的脚本,这些脚本控制游戏逻辑、玩家交互以及各种自定义功能,比如...
学习PHP的基础语法,理解如何与MySQL等数据库交互,以及如何使用PHP框架(如Laravel或CodeIgniter)可以提高开发效率。 4. **Web安全**:在涉及用户数据的网站中,了解如何防止SQL注入、跨站脚本攻击(XSS)和其他...