MYSQL四大特性及数据库账号管理的作用

MYSQL四大特性

1.事务操作数据库的四大特性
1.1原子性 (Atomicity)

原子性:就是事物的所包含的所有操作,要么全部成功,要么全部失败回滚。

1.2一致性 (Consistency)

一致性:简单来说就是在事物执行前和执行后,必须保持数据的一致。
(就好比有四个苹果 不管分给多少个小朋友 最后小朋友们吃的苹果总数量应该就是四个)

1.3隔离性 (Isolation)

隔离性:一个事物执行的过程当中,不能被其他的事物干扰。比如有事物A和事物B,相对于A来说,你B想要执行,要么在我执行之前执行,要么在我执行完毕之后,你再开始执行。
1.4 持久性 (Durability)

持久性:事物被提交之后,他就被永久的存储到了数据库当中

2.如果不考虑事物的隔离性会引起的问题
2.1脏读

一个事物读取到了一个未提交的事物的数据。

2.2不可重复读

在读取数据库的某条数据的时候返回了不同的值,造成这个结果的原因是因为我们在查询了一次之后准备进行第二次查询的这个间隔之间,对我们要进行查询的这条数据进行了修改操作,从而导致两次读取的数据不一致。
(脏读和不可重复读的区别:
脏读是一个事物读取到了一个未提交事物的脏数据,而不可重复读是一个数据读取了一个已经提交了的事物的数据。)

2.3虚度(幻读)

出现幻读不是对一条数据的操作而产生的问题,而是操作多条数据产生的问题,例如:事物A想要对一张表中的某一字段的值进行修改,假设有一个字段的值全部为1,事物A现在想要将1全部修改为2,在提交事物之后,事物B接着又进行了一个操作,在这张表中添加了一个字段,值全部为1。那么这时候操作事物A的用户在查看的时候,会发现还有一行数据没有进行修改,其实这是事物B在他查看之前添加的。
(幻读和不可重复读都是读取了一个已经提交的事物,而脏读是读取了一个未提交的事物。不同的是不可重复读查询的是同一条数据,而虚读查询的是批量数据。)

3.MySQL数据库的四种隔离级别
3.1 Serializable (串行化):可避免脏读、不可重读读、幻读的发生

3.2 Repeatable read (可重复读):可避免脏读、不可重复读的发生

3.3 Read committed (读已提交):可避免脏读的发生。

3.4 Read uncommitted (读未提交):最低级别,任何情况都无法保证

4.数据库账号管理
在很多上市公司 对于数据库账号的管理是很有规矩的
对于数据库的账号管理关系:
数据库工程师dba 的位置是最高的 他有对数据库的操作使用所有的权限
而排名第二的就是项目经理pm(project manager)拥有操作大部分数据库管理数据库的权限
然后就是项目组长pl(project leader) 项目组长可能会没有新建表,修改表的权限
位置最低的是开发人员pj 开发人员基本上在公司就是码农 拥有的权限可能就是只有查询 增加和删除什么的根本就没有
下面给大家上一张图 可能会更了解一点
MYSQL四大特性及数据库账号管理的作用
今天的分享就这么多了 我知道自己有很多不足 也会慢慢去发现慢慢改进 一天要比一天更好 一起加油吧铁汁们