唯一浩哥

架构之路----Java有不少事

Mysql笔记

1. for update悲观锁

Mysql中使用Select ... for update操作,会锁表或者锁行,当查询条件中有明确指定主键的时候会锁行,否则会锁表(有主键但不明确的情况下任然是锁表),这种锁只有在所属事务提交后才会释放。

注意:
1.FOR UPDATE仅适用于InnoDB,且必须在事务处理模块(BEGIN/COMMIT)中才能生效
2.Myisam 只支持表级锁,InnerDB支持行级锁 添加了(行级锁/表级锁)锁的数据不能被其它事务再锁定,也不被其它事务修改。是表级锁时,不管是否查询到记录,都会锁定表。

2. 查找数据是否存在

SELECT 1 FROM table WHERE a = 1 AND b = 2 LIMIT 1
Integer exist = xxDao.existXxxxByXxx(params);
if ( exist != NULL ) {
  //当存在时,执行这里的代码
} else {
  //当不存在时,执行这里的代码
}
posted @ 2020-08-07 11:26  唯一浩哥  阅读(246)  评论(0编辑  收藏  举报