数据库范式、事务、锁学习
来源:互联网 发布:mac海洋亮白粉饼色号 编辑:程序博客网 时间:2024/05/17 09:39
数据库三大范式:
1、第一范式:保证每列的原子性,不能再拆分,比如联系方式,能拆成用户名和手机,就不要合在一起;
2、第二范式:保证每列都和主键关联;
3、第三范式:保证每列都和主键直接相关,而不是间接相关,这个涉及到拆分字段到其他表,主表只显示其他表主键信息。
--------------------------
数据库事务:
1、原子性:要么都执行,要么都不执行;
2、一致性:事务开始和结束后,数据保持一致性的状态。一致性包含强一致性、弱一致性、最终一致性;
3、隔离性:分为 读未提交(可能出现脏读、不可重复读、幻读),读已提交(可能出现不可重复读、幻读),可重复读(可能出现幻读),串行读。脏读是读到别的事务未提交的事务;不可重复读是一个事务内读2次,数据不一样,可能被另一个事务更新了;幻读是读2次,返回的记录数不一样了,可能被新增或删除了记录。Innodb默认是 可重复读级别。
4、持久性:事务提交后,对数据库造成的影响是永久的。
--------------------------
Mysql中的锁:
1)MyIsam支持表级锁。
表级锁又分为共享读锁和独占写锁。
1、共享读,其他事务还可以读;
2、独占写锁,其他事务读也不行,整个表锁了就为了写。
2)Innodb支持表级锁和行级锁。行级锁分为共享锁和排他锁。
1、共享锁允许一个事务去读一行,阻止其他事务获得相同数据集的排他锁。( Select * from table_name where ......lock in share mode)。
2、排他锁允许获得排他锁的事务更新数据,阻止其他事务取得相同数据集的共享读锁和排他写锁。(select * from table_name where.....for update) 。为了允许行锁和表锁共存,实现多粒度锁机制;同时还有两种内部使用的意向锁(都是表锁),分别为意向共享锁和意向排他锁。
3)对比表级锁和行级锁
表级锁加锁快、开销小,但是锁定粒度大,影响并发
行级锁加锁慢、开销大、但是锁定粒度小,并发高
--------------------------
Jdbc的事务依赖数据库的事务支持,通过conn.setAutoCommit(false),conn.setTransactionIsolation(...)来设置隔离级别
1、第一范式:保证每列的原子性,不能再拆分,比如联系方式,能拆成用户名和手机,就不要合在一起;
2、第二范式:保证每列都和主键关联;
3、第三范式:保证每列都和主键直接相关,而不是间接相关,这个涉及到拆分字段到其他表,主表只显示其他表主键信息。
--------------------------
数据库事务:
1、原子性:要么都执行,要么都不执行;
2、一致性:事务开始和结束后,数据保持一致性的状态。一致性包含强一致性、弱一致性、最终一致性;
3、隔离性:分为 读未提交(可能出现脏读、不可重复读、幻读),读已提交(可能出现不可重复读、幻读),可重复读(可能出现幻读),串行读。脏读是读到别的事务未提交的事务;不可重复读是一个事务内读2次,数据不一样,可能被另一个事务更新了;幻读是读2次,返回的记录数不一样了,可能被新增或删除了记录。Innodb默认是 可重复读级别。
4、持久性:事务提交后,对数据库造成的影响是永久的。
--------------------------
Mysql中的锁:
1)MyIsam支持表级锁。
表级锁又分为共享读锁和独占写锁。
1、共享读,其他事务还可以读;
2、独占写锁,其他事务读也不行,整个表锁了就为了写。
2)Innodb支持表级锁和行级锁。行级锁分为共享锁和排他锁。
1、共享锁允许一个事务去读一行,阻止其他事务获得相同数据集的排他锁。( Select * from table_name where ......lock in share mode)。
2、排他锁允许获得排他锁的事务更新数据,阻止其他事务取得相同数据集的共享读锁和排他写锁。(select * from table_name where.....for update) 。为了允许行锁和表锁共存,实现多粒度锁机制;同时还有两种内部使用的意向锁(都是表锁),分别为意向共享锁和意向排他锁。
3)对比表级锁和行级锁
表级锁加锁快、开销小,但是锁定粒度大,影响并发
行级锁加锁慢、开销大、但是锁定粒度小,并发高
--------------------------
Jdbc的事务依赖数据库的事务支持,通过conn.setAutoCommit(false),conn.setTransactionIsolation(...)来设置隔离级别
阅读全文
0 0
- 数据库范式、事务、锁学习
- 数据库事务、锁死、范式
- 数据库事务和范式
- 数据库—范式和事务
- 数据不一致的原因,数据库三范式,事务特性,事务的四个隔离级别,数据库锁
- 【学习】数据库三范式
- 数据库范式学习
- 数据库范式学习
- 数据库学习2-范式
- 数据库设计范式学习
- 数据库范式学习总结
- 数据库中的范式学习
- 数据库范式学习名词解释
- 数据库范式学习
- 数据库的事务,范式,处理,并发控制
- 数据库事务、事务四个特性以及三大范式
- 【转】数据库的事务,范式,处理,并发控制
- 数据库系统概念--(范式,存储,查询,事务,引擎)
- mysql必知必会
- echarts-特殊需求
- 添加OpenSSL库支持for WPA on RTEMS-libbsd
- HTML:Advanced Web Construction
- Android进阶系列之2:HandlerThread详解
- 数据库范式、事务、锁学习
- 如何避免ASP.NET缓存占用资源?
- 竞赛 电子设计大赛 四轴无人机 建议
- RxJava 在Android开发上的应用
- CodeForces
- 如何测试登录界面
- 自定义头像
- JMS学习之active mq
- BZOJ 1026 浅谈特殊要求预处理数位动态规划