当数据库隔离级别是默认的可重复读(Repeatable Read)时,如果查询语句只有一条则不需要事务. 当有多条查询sql语句且需要确保多条sql语句处于同一时间维度时则需要使用事务来确保多条SQL语句处于同一时间节点.
相关知识点
mysql查询当前事务隔离级别:
show variables like 'tx_isolation';
SELECT @@tx_isolation;
可通过命令把隔离级别设置为可重复读:
set tx_isolation='repeatable-read';
InnoDB引l擎中的四种隔离级别
级别越高事务隔离性越好,但性能就越低,而隔离性是由MySQL的各种锁以及MVCC机制来实现的:
read uncommit(读未提交):脏读
read commit(读己提交):不可重复读
repeatable read(可重复读):脏写
serializable(串行)