视图 mysql 拆分_MySQL(事务,回滚,数据概念,隔离,视图,索引)

事务

事务【一系列的操作序列】(逻辑工作单位):是维护数据库的完整性,保证一系列的SQL语句要么全部执行,要么全不执行;(例如:用户A 给用户B转账,首先A的卡要减去你转账的金额,B的卡要加上你转账的金额,这才是转账成功。这是一个完整的过程,所以可以称之为一个事务。)

单单一条SQL语句可以称之为事务吗?不是

事务特点

原子性:操作序列不可拆分,例如上面的转账。

一致性:事务执行的结果必须从一种一致性转换为另外一种一种性,也就是只有转账减去的金额和加上的金额是一样的,才可以保证一致性。(你可以想象一下,你给B转账了100000元,但是B只接收到了100元,这就不一致了。如果是这样就不是转账了,你就应该拨打110报警电话了~~)

隔离性:事务之间是相互独立的,执行互不干扰。

持久性:事务一旦执行完毕,所有的记录(或数据的操作/改变),永久保存在存储器中(常规为物理存储器)。

回滚

数据未提交才可以进行回滚。

事务的持久性和回滚也存在一定关系

62107be5841a5e83f5550472c452e8c7.png

模拟转账操作

以下的操作是为了模拟转账的操作(使用的是SQL语句,也为了练习SQL的基本语句)

9b9119c4f76542ac1bcf4f8160e5be8a.png

9584c926c0437555b17599a02f8d1458.png

1f41155497b7f439714321ab8acec43a.png

数据概念(脏读、不可重复、幻读、更新丢失)

脏读: (针对未提交的数据)就是指当一个 事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个 事务读到的这个数据是 脏数据,依据脏数据所做的操作可能是不正确的。

幻读: 一个事务按照相同的查询条件查询之前检索的数据,却发现检索的集条数表多或者变少,类似产生幻觉。

不可重复读取:(读取数据本身的对比)一个事务再读取某些数据后的一段时间后,再次读取这个数据,发现其读取出来的数据内容已经发生了改变,这是不可重复读。

**更新丢失:**最后的更新覆盖了其他事物之前的更新,而事物之间并不知道发生更新丢失。更新丢失完全可以避免,应用对访问的数据加锁即可。

隔离级别

READ UNCOMMITTED(读未提交) :最高效率,最低效率(忽略安全)。

READ COMMITTED(读已提交):允许不可重复的问题和幻读。强调效率大于安全。

REPEATABLE READ(可重复读):允许出现幻读,强调安全大于效率。

SERIALIZABLE(序列化):强调了并发安全性,最低效率(忽略效率)。

16f1090c010b1db6a43e7964670e47ce.png

be498c4dc0e91830c74d75e56ee31a76.png

0567779f3d6d8d79bce21b5b2092458a.png

设置隔离级别的原因

数据的交叉读取导致了脏读、不可重复、幻读。而设置隔离级别,就是SQL建立的解决问题的方式。

一共有四个级别。

视图

视图:从一张表或多张表或其他视图中构建出来的虚拟表。

视图在数据库中的存在形式

视图里存放的是动态检索的语句。只是存了动作。

创建视图

8ba588453e940e847af400b3be7b8dd6.png

cd422f53de85e12337e5292eff26fb3e.png

9c2c964dcea1779208964397d760a77d.png

索引

数据库索引是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。数据库索引就是为了提高表的搜索效率而对某些字段中的值建立的目录。

索引是占用空间的,是用空间换取时间,因为索引可以提高查询效率。

索引是不是越多越好呢? 不是(占用的空间越来越多,进行添加、更改、删除等操作也会浪费更多的时间)

索引里保存指向的具体的信息。

索引一旦建立,系统自动去用。

建立索引

71be40d89b566d1532abc3d839f4cd82.png

c7a2a5cf0b4505c77bf6f237092380c8.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值