sql总结复习笔记

1.和事务相关的语句只有DML语句(多条DML语句联合)
transaction存在是为了保证数据完整性和安全性

2.
捕获.JPG

3.transaction四大特性:
一:原子性:transaction为最小工作单元,不可再分
二:一致性:多条DML语句同时成功或失败
三:隔离性:transaction A 与 transaction B 之间有隔离
四:持久性:最终数据必须持久化到硬盘中,transaction才算结束

4.事务(transaction)的隔离性级别

        一:读未提交:(read   uncommitted)
                  对方事务还未提交,当前事务可读取到对方为提交的数据
                        (dirty   read)脏读现象

         二:读已提交:(read  committed)
                    对方提交后,当前事务方可读到数据
                               解决了dirty   read现象,但不可重复读
          三:可重复读:  (repeatable   read)
                                      解决了:不可重复读问题
                                  存在问题:读取到的对象是幻象

          四:序列化/串行化读   (serializable)
                          解决所有问题
                           但是效率低,需要事务排队

5.Oracle默认是二级(read committed)读已提交,mysql是三级(repeatable read)

6.mysql中的事务时支持自动提交的
start transaction关闭自动提交

7.设置事务的全局隔离级别

set global transaction isolation leveal read   跟级别例如   read committed;

查看事务的全局隔离级别

select @@global.tx_isolation;  // (mysql5.0)
select @@global.transactoin_isolation;    //(mysql8.0)

8.啥时候添加索引?
(1).数据量庞大的时候
(2).该字段很少的DML操作(因为字段进行修改操作,索引也需要维护)
(3) .该字段经常出现在where子句中

9.主键(primary key)和具有unique约束的字段会自动添加索引。
根据primary key 查询效率高

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容