锁的的维护是需要成本的,为了节约资源,MySQL 在设计提出了了一个隐式锁的概念。一般情况下 INSERT 操作是不加锁的,当然真的有并发冲突的情况下下,还是会导致问题的。
    所以 MySQL 中,一个事务对新插入的记录可以不显式的加锁,但是别的事务在对这条记录加 S 锁或者 X 锁时,会去检查索引记录中的 trx_id 隐藏列,然后进行各种判断,会**先帮助当前事务生成一个锁结构,然后自己再生成一个锁结构后进入等待状态。但是由于事务 id 的存在,相当于加了一个隐式锁。
    这样的话,隐式锁就起到了
    延迟生成锁**的用处。这个过程,我们无法干预, 是由引擎自动处理的,对我们是完全透明的