![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据库(工程)
文章平均质量分 77
数据库工程实践
kkzz1x
真.新手起步
Java + CPP + Rust(新人),计算机科学热爱者
展开
-
【DB-4】行锁-两阶段锁协议/死锁
回顾:全局锁表级锁: 表锁,MDL元数据锁参考:极客时间 mysql实战45讲行锁MySQL的行锁是在引擎层由各个引擎实现的,但并非各个引擎都支持行锁,比如MyISAM引擎不支持行锁(InnoDB支持) ,所以只能用表锁,同一张表上任何时刻只能有一个更新在执行,影响到业务并发度。两阶段锁协议加锁时间:语句执行的时候加上,而不是事务开始的时候就加上释放锁时间:统一在事务结束后再释放启发:如果一个事务中需要锁多个行,那么把最可能造成锁冲突、最可能影响并发度的锁往后放,以减少锁的等待时间,原创 2022-04-13 21:38:44 · 501 阅读 · 0 评论 -
【DB-3】全局锁和表锁
文章目录全局锁表级锁表锁MDL元数据锁锁和索引一样也是一种数据结构,索引是为了加快数据的访问速度而设计的,锁是为了控制并发访问而设计的。数据库事多用户共享的资源,所以要考虑并发访问。分类:全局锁、表锁、行锁全局锁全局锁是对整个数据库实例加锁。加全局读锁:Flush tables with read lock FTWRL设置全局变量也可以,但客户端异常时不会自动断开 set global readonly=true,而且readonly可能要用于判断主备用于需要让整个库处于只读状态的时候,使原创 2022-04-11 23:37:28 · 500 阅读 · 0 评论 -
【DB-2】DBMS索引技术
文章目录DBMS索引技术顺序索引DBMS索引技术Q:为什么要引入索引?执行器要向存储引擎要数据,存储引擎要知道“数据”在哪里。(页表? 页表并不知道页面内容是什么)此时如果不用索引,则要进行顺序查找,复杂度O(n) 索引可以降低复杂度,争取降低到O(logn) 甚至O(1)索引的目标帮助我们快速定位目标所在的内存地址,定位目标所在的磁盘页面。分类:基于索引所用的数据结构,可以分为哈希表索引、基于树的索引。要考虑的问题: 数据组织问题,存储何种信息;并发访问问题索引数据结构一个索引项=原创 2022-04-11 14:22:17 · 819 阅读 · 0 评论 -
【DB-1】DBMS存储技术
文章目录一、物理存储介质二、DBMS存储系统三、磁盘上的文件存储四、缓冲池(内存和磁盘间数据如何交换?)缓冲池管理器结构帧分配一、物理存储介质易失性存储DRAM随机访问、字节寻址非易失性存储SSD顺序访问块/页寻址对于非易失磁盘HDD,顺序访问的效率显然更高,因为只要访问连续的磁盘块,只需要对第一个磁盘块的寻道时间;而随机访问每次都要进行重新寻道。对于SSD,理论上随机访问和顺序访问是一样的,但实际上顺序访问仍然有明显优势(缓存友好、预读友好)二、DBMS存储系统核心设计目标:原创 2022-04-08 22:32:37 · 889 阅读 · 0 评论 -
2021-11-3 数据库复习-概述
文章目录一、数据库四个基本概念二、产生和发展三、数据库系统阶段的特点四、数据模型五、数据库系统模式数据库系统的三级模式结构数据库的二级映像功能一、数据库四个基本概念数据(Data)数据库(Database)数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据的集合。数据库管理系统(DBMS)位于用户与操作系统之间的一层数据管理软件是基础软件,是一个大型复杂的软件系统数据库管理系统的用途:科学地组织和存储数据、高效地获取和维护数据数据库系统(DBS)数据库原创 2021-11-03 10:39:30 · 126 阅读 · 0 评论