当前位置:首页 > 问答 > 正文

数据库优化|锁机制:mysql行锁过期时间及常用mysql行锁语句解析

🔍 速递(2025-08参考)

数据库优化
核心方向:索引优化、查询重写、分库分表、缓存策略
💡 高频技巧

数据库优化|锁机制:mysql行锁过期时间及常用mysql行锁语句解析

  • 避免SELECT *,用覆盖索引
  • 联合索引遵循最左匹配原则
  • 定期ANALYZE TABLE更新统计信息

锁机制 | MySQL行锁过期时间
行锁过期

  • InnoDB默认无显式过期时间,但事务结束(提交/回滚)自动释放
  • 长事务可能阻塞其他会话,建议监控information_schema.INNODB_TRX
    ⚠️ 隐式超时
  • 锁等待超时由innodb_lock_wait_timeout控制(默认50秒)

常用MySQL行锁语句解析
🔒 显式加锁

数据库优化|锁机制:mysql行锁过期时间及常用mysql行锁语句解析

  • SELECT ... FOR UPDATE(排他锁,其他事务不可读/写)
  • SELECT ... LOCK IN SHARE MODE(共享锁,其他事务可读不可写)
    🚦 场景示例
    BEGIN;
    SELECT * FROM orders WHERE id = 100 FOR UPDATE; -- 锁定订单100
    UPDATE orders SET status = 'paid' WHERE id = 100; 
    COMMIT; -- 释放锁

⚡ 趣味冷知识

  • 行锁实际是索引记录锁,无索引会升级为表锁!
  • Emoji小贴士:索引用好,锁冲突少一半~
    为技术要点提炼,具体参数请以实际版本为准)

发表评论