
MDB
文章平均质量分 82
silenci
宅若久时天然呆,呆到长时自然萌
展开
-
MDB中cell的格式
cell存储(key, value)键值对,由于MDB目前只支持uint32_t键值和string数据,所以直接在key size中用变整型数据格式存储uint32_t类型的键值key,在data中存储字符串的ascii格式。payload header保存的是包括payload header和data type的byte数,data type是存储的数据格式,参考了sqlite的表示方法,用整数原创 2017-01-04 16:59:21 · 350 阅读 · 0 评论 -
MDB文件分页类型和格式
page1:0 16 “MDB format 0” 16 4 first freelist page20 4 number of free pages24 1 b+树节点类型,0x0d表示叶子节点,0x05表示内部节点25 2 剩余可用空间 emptyPage:fe5原创 2017-01-08 19:17:39 · 1071 阅读 · 0 评论 -
SQLite剖析之事务处理技术
原文章地址:http://www.cnblogs.com/5211314jackrose/p/5818124.html前言 事务处理是DBMS中最关键的技术,对SQLite也一样,它涉及到并发控制,以及故障恢复等等。在数据库中使用事务可以保证数据的统一和完整性,同时也可以提高效率。假设需要在一张表内一次插入20个人的名字才算是操作成功,那么在不使用事务的情况下,如果插入过程中出现异常转载 2017-02-09 16:51:07 · 1400 阅读 · 0 评论 -
事务并发控制
一、三类并发问题及四种事务隔离级别首先介绍三类并发问题: 1.脏读:一个事务读到另一个事务未提交的更新数据(A和B事务并发执行,B事务执行更新后,A事务查询B事务没有提交的数据,B事务回滚,则A事务得到的数据不是数据库中的真实数据。也就是脏数据,即和数据库中不一致的数据)。 2.不可重复读:一个事务读到另一个事务已提交的更新数据(A和B事务并发执行,A事务查询数据,然后B事务更新该数据,A再原创 2017-02-08 19:07:16 · 661 阅读 · 0 评论 -
索引并发(蟹行协议和B-Link树)
索引并发事务的并发问题可以通过两阶段封锁协议(2PL)或者多版本并发控制(mvcc)等方法解决。这些方法也同样适用于索引的并发访问控制。但是,由于索引访问频繁,它们将成为封锁竞争的集中点,导致低并发度。对事务而言,对一个索引查找两次,并在期间发现索引结构发生变化,这是完全可以接受的,只要索引查找返回正确的元组集。因此,只要维护索引的准确性,对索引进行非可串行化井发存取是可接受的。蟹行协议● 当搜索一原创 2017-02-26 20:54:27 · 3331 阅读 · 0 评论 -
B+树的实现,主要讲解删除操作
关于B+树的基本定义,随便一本数据结构的书或者算法导论中都有,就不做介绍了。虽然网上和书本上都有很多对B+树的介绍,但是有很多资料对于B+树的操作或者介绍不全,或者有描写错误的地方,我这里参考这位大神的文章http://blog.youkuaiyun.com/xinghongduo/article/details/7059459,整理了B+树删除操作的所有情况,并且抽出了两个辅助函数://向相邻节点借用关原创 2016-12-04 16:50:55 · 1717 阅读 · 0 评论