- 博客(5)
- 收藏
- 关注
原创 SQL 物理逻辑优化,Volcano Optimizer
SQL 查询优化的目的优化器在整个数据库系统中占据着至高无上的地位,它是数据库性能的决定因素,是所有数据库引擎中最重要的组件。⑴使用的角度因为SQL 是一种声明式(Declarative)的编程语言, 相比一般的编程语言描述的是程序执行的过程,这类编程语言则是描述问题或者需要的结果本身,具体的执行步骤则交由程序自己决定。SQL是一种可以被快速入手的编程语言, 主要优点就在于即使用户因并不了解数据库内部的实现细节而写出来十分糟糕的查询语句, 只要表达的意思准确清楚,数据库就可以返回结果。因此必须对SQL
2020-11-03 11:29:18 789
原创 SQL server组件
SQL Server组件关系引擎关系引擎又称为查询处理器,它包含的SQLServer组件用于确定查询需要完成的任务,以及如何实现的最佳方案.关系引擎包含两个主要的部分:查询优化和**查询执行.**查询优化器也是关系引擎中最复杂的组件,甚至是整个SQLServer产品中最复杂的组件,它用于确定批处理中查询的最佳执行方案包含三大组件:(1)命令解析器(query parser):检查语法和转换查询树(2)查询优化器(query optimizer):负责执行查询(3)查询执行器(query exe
2020-11-03 11:27:39 2131
原创 事务与并发控制ACID,MVCC,四种隔离
MySQL并发事务的实现对于 MySQL 数据库来说,事务是指以执行start transaction命令开始,到执行commit或者rollback命令结束之间的全部 SQL 操作,如果这些 SQL 操作全部执行成功,则执行commit命令提交事务,表示事务执行成功;如果这些 SQL 操作中任一操作执行失败,则执行rollback命令回滚事务,表示事务执行失败,并将数据库回滚到执行start transaction命令之前的状态事务用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不
2020-11-03 11:26:01 334
原创 BloomFilter,Cuckoo Filter的实现
Bloom Filter数字的话,位图是可以处理的,因为他们是不存在冲突的,每一个数字对于一个唯一的哈希地址;但是对于字符串,位图是没有办法处理的,因为字符串存在哈希冲突。因此,我们只能通过我们将一个元素经过多个散列函数映射到多个位上来降低误判的概率,布隆过滤器正是基于这个特点应用而生的。Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会
2020-11-03 11:23:03 263
原创 Skiplist,B,B+tree,LSM tree
SkipList理解(如何实现):即使是有序的链表,查找的时间复杂度也是O(n),但链表不能随机访问所以不适用于二分查找,使得查找的时间复杂度为O(logn)。于是将有序链表和二分查找结合得到了SkipList,类似于二叉搜索树,这是一种以空间换时间的算法,通过在每个节点中增加向前的指针,从而提升查找效率(如下图所示)。一开始如a所示,是一个有序的链表,时间复杂度O(n)。随后建立了e所示的SkipList,从最顶层往下查找,可以跳过许多元素,减少查找次数。
2020-11-03 11:20:42 777
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人