数据库安全性问题 返回首页

发表于 2022-02-12 | 本文共 575 字

数据库安全性问题

准备数据

创建一张账户表,并添加数据

create table account(
    id int primary key auto_increment,
    name varchar(20),
    money double
);

insert into account values (null,'zs',1000);
insert into account values (null,'ls',1000);
insert into account values (null,'ww',1000);

演示脏读

一个事物里面读到了另外一个事物没有提交的数据:read uncommitted(读未提交)


演示不可重复读并解决脏读

在一个事物里面,同一条语句,两次查询的结果不一致:Read committed(读已提交)


演示避免不可重复读


演示隔离级别Serializable(串行化)

通过强制事务排序,让事务必须以顺序的方式执行,使之不可能相互冲突,在前一个事务提交之前后面的事务无法进行提交,从而解决了幻读的问题。

它在每个读的数据行上面加上了共享锁,但是可能会导致超时和锁竞争(这种隔离级别太极端,实际生产基本不使用),而且不能并发操作,导致效率低下。



如果你觉得本文对你有帮助,不妨请我喝杯咖啡