SQL中 mysql 、Oracle 、sql server 等数据库 都是客户端和服务器架构的软件,对于同一个服务器来说,可以有若干个客户端与之连接,每个客户端与服务器连接上之后,就可以称为一个 【会话(session)】,每个session都可以对应的服务器发送请求。这样多个session请求,对于服务器来说可能同时需要处理多个事务(请求)。事务有隔离性,理论上在某个事务对某个数据进行访问时,其它事务应该进行排队(串行化),当该事务提交之后,其它事务才可以继续访问这个数据。但是这样对性能影响太大了,我们既想保持事务的隔离性,又想让服务器在处理访问同意给数据的多个事务时性能尽量高些。
查看隔离级别
SELECT @@GLOBAL.transaction_isolation; -- 全局系统变量
SELECT @@SESSION.transaction_isolation; -- 会话系统变量
show variables like '%isolation';
select @@transaction_isolation;
脏读 dirty read