MySQL:数据库知识手册笔记(下)目录
- 1 锁
- 1.1 锁的分类(具体异同还需思考)
- 1.2 事务隔离级别与锁的关系
- 1.3 什么是死锁?如何解决死锁?
- 1.4 什么是乐观锁和悲观锁?如何实现?
- 2 常用SQL语句(重点)
- 3 数据库优化
- 4 总结
成都创新互联公司专注于企业
全网营销推广、网站重做改版、红寺堡网站定制设计、自适应品牌网站建设、
H5响应式网站、
商城网站开发、集团公司官网建设、
外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为红寺堡等各大城市提供网站开发制作服务。
1 锁
1.1 锁的分类(具体异同还需思考)
- 共享锁(S):又叫他读锁。可以并发读取数据,但不能修改数据。也就是说当数据资源上存在共享锁时,所有的事务都不能对该数据进行修改,直到数据读取完成,共享锁释放。
- 排它锁(X):又叫 独占锁、写锁。对数据资源进行增删改操作时,不允许其它事务操作这块资源,直到排它锁被释放,从而防止同时对同一资源进行多重操作。
- 更新锁(U):防止出现 死锁 的锁模式,两个事务对一个数据资源进行先读取再修改的情况下,使用共享锁和排它锁有时会出现死锁现象,而使用更新锁就可以避免死锁的出现。资源的更新锁一次只能分配给一个事务,如果需要对资源进行修改,更新锁会变成排它锁,否则变为共享锁。
- 意向锁:表示 SQL Server 需要在 层次结构中的某些底层资源上 获取共享锁或排它锁。例如,放置在 表级 的 共享意向锁 表示事务打算在表中的页或行上放置共享锁。在表级设置意向锁可防止另一个事务随后在包含那一页的表上获取排它锁。意向锁可以提高性能,因为 SQL Server 仅在 表级 检查意向锁来确定事务是否可以安全地获取该表上的锁,而无须检查表中的每行或每页上的锁以确定事务是否可以锁定整个表。意向锁包括意向共享 (IS)、意向排它 (IX) 以及意向排它共享 (SIX)。
- 架构锁:在执行 依赖于表架构的操作时使用。架构锁的类型为:架构修改 (Sch-M) 和架构稳定性 (Sch-S),执行表的数据定义语言 (DDL)操作(例如添加列或除去表)时使用架构修改锁,当编译查询时,使用架构稳定性锁。
- 大容量更新锁(BU):向表中大容量复制数据并指定了 TABLOCK 提示时使用。 大容量更新锁允许进程将数据并发地大容量复制到同一表,同时防止其它不进行大容量复制数据的进程访问该表。
1.2 事务隔离级别与锁的关系
- 读取未提交,读取数据不需要加共享锁,这样就不会跟被修改的数据上的排他锁冲突;
- 读取已提交,读操作需要加共享锁,但是在语句执行完以后释放共享锁;
- 可重复读,读操作需要加 共享锁,但是在事务提交之前并不释放共享锁,也就是必须等待事务执行完毕以后才释放共享锁;
- 可串行化,因为该级别 锁定整个范围的键,并一直持有锁,直到事务完成。
1.3 什么是死锁?如何解决死锁?
1.3.1 是什么
死锁是指两个或多个事务在同一资源上相互占用,并请求锁定对方的资源,从而导致恶性循环的现象。
1.3.2 怎么办
- 如果不同程序并发存取多个表,尽量约定以相同的顺序访问表,可以大大降低死锁机会;
- 在同一个事务中,尽可能做到一次锁定所需要的所有资源,减少死锁产生概率;
- 对于非常容易产生死锁的业务部分,可以尝试使用升级锁定颗粒度,通过 表级锁 定来减少死锁产生的概率。
1.4 什么是乐观锁和悲观锁?如何实现?
2 常用SQL语句(重点)
3 数据库优化
4 总结
- 内容:本书更侧重SQL相关基础知识,对于sql语句的编写提及不多,还是得去刷题
- 其他:第一次尝试md编辑器,吼吼用哦,加油加油(不能再摸鱼了~
- 参考:LeetCode 数据库知识手册
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网站栏目:【知识学习】MySQL:数据库知识手册笔记(下)-创新互联
网页网址:
http://cqcxhl.com/article/dodchs.html