mysql之innodb锁的应用
--> mysql行锁 表的搜索引擎为innodb,支持事务,采用的是行锁。
--->
首先将mysql 的自动提交设置为0
set autocommit = 0;
写输入完成sql之后需要执行的命令是 commit;命令来执行事务的提交。
-->-- 死锁问题的产生
mysql存在死锁检查的机制、如果检查存在死锁的状态,mysql会自动的进行上一个的锁的解除操作。但会因此耗费mysql 的性能。
--> 死锁问题的产生
当用户一对表中的第一行加上for update的语句,
用户二对表中的第二行有for update的操作
然后用户一对第二行中的数据进行update的操作。
用户二对第二行的数据进行修改的时候则会产生死锁。
在执行完成之后要执行commit的操作,才能完成对文件的修改的操作。
在更新的时候如果该字段没有存在index的情况下 则由行锁自动的更新为表锁。
show index form TableName ;
用来查看mysql的表中的索引的字段的
在使用的时候尽量的使用主键id来进行查找的操作
避免使用的时候产生 主键不存在的情况下 行锁升级为表锁
-- 》 保证筛选条件的字段是存在索引的
--> 间隙锁
加锁的时候尽量避免添加范围锁,这样可以避免产生别的用户无法对数据进行修改的问题。
-->END
-->锁的建议优化
-->查看当前系统中存在的锁的状态
show status like 'innodb_row_lock%';
本文来自博客园,作者:diligently,转载请注明原文链接:https://www.cnblogs.com/luo12828-foxmail/p/16964135.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了