摘要:
区间嵌套法原理 如果节点区间[clft, crgt]与[plft, prgt]存在如下关系:clft >= plft and crgt <= prgt,则[plft, prgt]区间里的点包含[clft, crgt]的子节点。基于此假设我们就可以通过对区间的不断的向下划来获取新的区间。 举例:如果在 阅读全文
摘要:
在基于数据库的一般应用中,查询的需求总要大于删除和修改。为了避免对于树形结构查询时的“递归”过程,基于Tree的前序遍历设计一种全新的无递归查询、无限分组的左右值编码方案,来保存该树的数据。优点是查询非常的方便,缺点就是每次插入删除数据涉及到的更新内容太多,如果树非常大,插入一条数据可能花很长的时间 阅读全文
摘要:
闭包表的思路和物化路径差不多,都是空间换时间,Closure Table,一种更为彻底的全路径结构,分别记录路径上相关结点的全展开形式。能明晰任意两结点关系而无须多余查询,级联删除和结点移动也很方便。但是它的存储开销会大一些,除了表示结点的Meta信息,还需要一张专用的关系表。 其中 Ancesto 阅读全文
摘要:
在创建节点时,将节点的完整路径进行记录。 按照Path Enumeration 进行存储后的结果如下: 此种方案借助了unix文件目录的思想,主要时以空间换时间。 缺点: 树的层级太深有可能会超过PATH字段的长度,所以其能支持的最大深度并非无限的。 PS:如果层级数量是确定的,可以再将所有的列都展 阅读全文
摘要:
在程序开发中,我们常遇到用树型结构来表示某些数据间的关系,如企业的组织架构、商品的分类、操作栏目等,目前的关系型数据库都是以二维表的形式记录存储数据,而树型结构的数据如需存入二维表就必须进行Schema设计。 Adjacency List(邻接列表模式) 简单的说是根据节点之间的继承关系,显现的描述 阅读全文
摘要:
引子 考虑一个有序表:14->23->34->43->50->59->66->72 从该有序表中搜索元素 < 23, 43, 59 > ,需要比较的次数分别为 < 2, 4, 6 >,总共比较的次数 为 2 + 4 + 6 = 12 次。有没有优化的算法吗? 链表是有序的,但不能使用二分查找。类似二 阅读全文
摘要:
一致性哈希可以有效解决分布式存储结构下动态增加和删除节点所带来的问题。 一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义: 环形Hash空间 按照常用的hash算法来将对应的key哈希到一个具有2^32次方个桶的空间中,即0~(2^32)-1的数字空间中。现在我们可以 阅读全文