三言两语-mysql乐观锁与悲观锁

三言两语说mysql乐观锁与悲观锁

乐观锁,读取待修改的数据不加锁,修改后提交到数据库。这会造成同一条记录,被多次修改,而这些修改是相同的(无用的)。只是它们各个操作之间,不知道别人已经在做这件事儿了。这就是记录没有锁定造成的。(默认)

悲观锁,读取待修改的数据,立即加锁(只读取,没有修改意图的访问,任然能正常访问到加锁的数据),修改提交到数据库后,其他试图对进行修改的读取操作才读得到这条数据。

悲观锁的实现方式:首先把事务设置成手动提交的(设置方式set autocommit=0),再在select语句后天就for update即可。

mysql引擎 对于 锁的支持 情况:

数据库引擎 支持锁级别
MyISAM 表级
BDB 页级、表级
InnerDB、NDBCluster 行级、表级

 

 

 

数据库一二事

1.在执行insert into操作时,①若新增的记录中包含了所有的字段值,且顺序与表结构字段顺序一致时,在sql语句中,可省略字段名的列举。value后面的数据顺序,必须与字段名的列举顺序一致(可不与数据表结构字段顺序一致)。如

select * from t_student value(1,'张三','男','22');

②若数据表字段中 存在‘自增长’、默认值 的表结构字段,新增时,除这些‘自增长’、默认值的字段为非必须外,其余的非空字段名必须列举。

原文地址:https://www.cnblogs.com/bridgestone29-08/p/7711443.html