MySQL 的锁行为不是由 SQL 类型绝对决定的,而是和事务隔离级别、语句是否走索引、执行计划强相关。比如 SELECT * FROM t WHERE id = 1 在 RR(可重复读)下,如果 id 是主键,InnoDB 会加 **行级记录锁(Record Lock)**;如果 id 没索引,就会退化为 **表级意向锁 + 间隙锁或临键锁的组合**,甚至全表扫描时锁住所有聚簇索引页。
select
精选推荐
Sublime如何快速复制当前行_Sublime快速上下移动行快捷键【实用】
SQL LATERAL JOIN 的相关子查询展开与性能提升案例
最新动态
mysql执行SQL时会加哪些锁_mysql并发锁流程说明
mysql中的触发器日志与错误处理机制
触发器运行在语句执行的上下文中,不是独立会话,也不支持交互式输出。你写 SELECT ‘debug’ 不会打印日志,反而会报错:ERROR 1415 (0S000): Not allowed to return a result set from a trigger。这是最常踩的第一个坑。
mysql安装后如何验证环境是否正常_mysql安装测试方法
安装完 MySQL 后,第一步不是连数据库,而是确认服务进程真正在运行。Windows 下常因服务未手动启动导致连接失败;Linux/macOS 则可能因 mysqld 进程没起来或被防火墙拦截。
mysql如何使用distinct去重_mysql去重语法实战
很多人写 DISTINCT 时误以为它是个函数,比如 SELECT DISTINCT(name) FROM user,这是错的——DISTINCT 是关键字,修饰整个 SELECT 行。括号不改变语义,反而容易误导。
如何为多个下拉菜单动态切换上下箭头图标
本文介绍如何使用纯 javascript 实现多组下拉菜单的图标状态同步控制:点击时,对应菜单展开并显示向上箭头,收起时显示向下箭头;同时确保其他已展开菜单自动关闭,并同步更新其图标状态。
什么是数据库基本概念_mysql数据库入门理解
数据库,说白了就是一个有组织、可查找、能管理的数据仓库。它不是随便堆文件的硬盘文件夹,而是用结构化方式(比如表格)把数据存好,再通过软件(MySQL 就是其中一种)来增、删、改、查——就像你用 Excel 管理通讯录,但比 Excel 更稳、更快、更安全、更能多人同时用。
mysql触发器如何定义和使用_mysql触发器创建教程
MySQL 触发器不能脱离执行时机和操作类型独立存在。必须明确是 BEFORE INSERT、AFTER UPDATE 或 BEFORE DELETE 三者之一,且只能作用于单表。常见错误是漏写 AFTER/BEFORE,导致语法报错 ERROR 1064;或试图在同一个触发器里响应多个事件(比如 INSERT OR UPDATE),这是不被支持的。
mysql如何查看死锁日志_mysql死锁排查方法
MySQL 只保留**最后一次检测到的死锁**完整信息,这是最快速、最常用的入口。执行命令后,重点盯住 LATEST DETECTED DEADLOCK 区块——它不是“所有死锁”,而是“上一个”。
常见错误现象:
• 执行完命令却看不到死锁段落 → 说明近期没触发死锁,或已被新死锁覆盖
• 日志里只有“*** (1) TRANSACTION”但缺“(2)” → 可能是日志被截断,或事务已提交/回滚导致上下文丢失
实操建议:
• 一定要加 G,否则锁信息挤在一行根本没法读
• 在业务高峰期出问题时,立刻连上数据库执行,别等第二天
• 注意时间戳:日志顶部显示的是该状态生成时间,不是死锁发生时间(二者可能差几秒)
CSS伪元素::selection自定义_修改网页文字选中颜色
直接写 CSS 规则就行,::selection 是标准伪元素,现代浏览器基本都支持(IE 不支持,Edge 12+ 开始支持)。它作用于用户鼠标拖拽选中的文本,不是所有元素都响应——比如 <input> 和 <textarea></textarea> 默认不生效,得额外加 ::-moz-selection(旧版 Firefox)或用 user-select: text 激活。
什么是MySQL数据库?MySQL数据库基本概念与核心组成详解
MySQL 是一个开源的关系型数据库管理系统(RDBMS),本质是用表格组织数据、靠 SQL 操作、由存储引擎落地存储的软件服务——它不是“数据库”本身,而是管理数据库的工具;你创建的那个 school_db 才是数据库,而 MySQL 是让它能运行、被访问、不丢数据的那套系统。