数据库原理
洗头用酱油
这个作者很懒,什么都没留下…
展开
-
Mysql 深入浅出(一)
Mysql基础框架工作中经常必然会涉及到数据库的操作。但是自己对数据库的知识没有形成一个很连贯的知识网络,接下来的时间自己会根据阅读的图书做一些笔记总结。Mysql主要分为两层,server层和存储层。如下图:连接器:负责用户的链接管理,密码验证,鉴权登陆等。分析器:对SQL语句进行分析。其实SQL就是一个有规则的(包含关键字和空格)字符串。分析器会对字符串中的关键字进行解析。...原创 2019-02-11 22:09:50 · 200 阅读 · 0 评论 -
MySql 深入浅出之二 (Update的执行)
前面说到了数据库的查询会经过连接器,分析器,执行器,存储engine等。试下,在一条更新语句之前,我们必须知道更新前的值,因此在Update执行的时候,查询语句也会先被走一边。下图是一个Update语句执行的过程:从图中可以看出两个重要的日志用于完成update这一操作。其中 redo log是用于保存物理日志的,用于记录这个数据页修改了什么操作,存放在存储Engine中,是InnoDB自...原创 2019-02-17 22:32:19 · 260 阅读 · 0 评论 -
MySql 深入浅出之三 (数据库索引)
常见的数据库索引数据结构数据库索引是数据库很重要的概念,它主要的作用是提高数据库的读写效率。 常见的索引数据结构有以下3个:哈希表:是一种以key-value形式存储的数据结构。是一种很常见的数据结构,使用合适的哈希函数就能算出key值对应存储的位置。 可想而知当key值很多的时候,会出现hash冲突,这个时候采用的方法是将对应位置的key值建立链表。具体实现可以对应HashMap。从上面...原创 2019-02-25 10:16:37 · 157 阅读 · 0 评论 -
MySql 深入浅出之四 (数据库的锁)
锁的分类每个数据库引擎都有自己锁的实现。例如Myisam引擎就支持表锁。因此总的来说锁分为 全局锁,表锁,行锁。 从粒度来说当然是粒度越细效率越高。但是其实每一种锁都有自己的使用场景。 全局锁:可以是整个数据库属于只读状态。 因此可以用来做全局逻辑备份。 表锁:表锁分为两种一种是表锁,一种是元数据所(meta data lock,MDL) 表锁的语法是:lock tables ... ...原创 2019-02-25 20:46:44 · 199 阅读 · 0 评论