有一个需求,需要在数据库插入数据,但是要求不能和之前的记录重复,因为这个重复判定还需要计算时间,不能直接做成唯一索引,因此就需要用锁机制来搞定,这里就有个疑惑了
如果用 mysql 的锁机制,把 select 和 insert 放在一个事务里,那应该必须只能串行化处理,整个表都被锁了
如果用 java 的 synchronized()机制,应该可以做到在进行这个处理的过程中不会锁整张表。但是就有个问题,如果要做多机部署搞负载均衡,那 java 层面的锁不就没用了白做了吗
然后就引申出,java 的锁机制,是不是只能在确认只会部署一台机器的前提下使用?