Boo's Blog

Stay foolish, Stay hungry

原文链接:MySql Lock wait timeout exceeded该如何处理?

Mysql造成锁的情况有很多,下面我们就列举一些情况:

  • 执行 DML 操作没有 Commit,再执行删除操作就会锁表。
  • 在同一事务内先后对同一条数据进行插入和更新操作。
  • 表索引设计不当,导致数据库出现死锁。
  • 长事物,阻塞 DDL,继而阻塞所有同表的后续操作。

在Mysql 中,想要对结果进行排序,通常会使用Order By 子句,使用时,应注意以下几点:

  • 在Order By 子句中,使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列; 默认按升序(ASC)排列
  • Order By 子句可以指定多个排序键
  • 存在多个排序键时,优先使用左侧的键,如果该列存在相同值的话,则按右侧的键进行排列
  • 如果排序键的值包含NULL,则会在开头或者结尾进行汇总(按最小值对待)