MySQL中如何避免死锁?

  • 尽量以相同的顺序来访问索引记录和表
  • 业务上能够接受幻读和不可重复读,考虑降低锁的级别到 Read committed,降低死锁发生的概率
  • 添加合理的索引,走索引避免为每一行加锁,降低死锁的概率
  • 在事务中一次锁定所需要的所有资源,如 MyISAM 引擎的表锁
  • 避免大事务,尽量将大事务拆成多个小事务来处理
  • 尽量避免同时并发对同一表进行读写操作,特别是执行加锁且操作数据量较大的语句
  • 设置锁等待超时参数

 

 


【Java面试题与答案】整理推荐

  • 基础与语法
  • 集合
  • 网络编程
  • 并发编程
  • Web
  • 安全
  • 设计模式
  • 框架
  • 算法与数据结构
  • 异常
  • 文件解析与生成
  • Linux
  • MySQL
  • Oracle
  • Redis
  • Dubbo

 

你可能感兴趣的:(MySQL中如何避免死锁?)