Archive | 六月, 2014

B树在数据库索引中的应用剖析(发表版本)

最近一篇发表于《程序员》2014年6月刊上的文章。有点遗憾发现,有些部分被编辑修改过了,读起来有点怪怪的。最典型的是习惯于对某些比较经典的定义引用wikipedia或者原始白皮书中原始的E文,在文中发现都被硬译过了,表达的意思自己都有点看不懂了!

最终修改后提交的版本归档下:

引言

关于数据库索引,随便Google一个Oracle indexMysql index总能得到“某某索引之n条经典建议”之类大量结果。笔者认为,较之直接借鉴,在搞清实际需求的基础上,对备选方案的原理尽可能深入全面的了解会更有利于我们的决策。因为某种方案或者技术呈现出某种优势(包括可能没有被介绍到但一定存在的限制),不是厂商的白皮书这样规定,是由实现机制决定的或者说本身的结构决定的。

本文重点介绍数据结构中经典的树(B树)结构在数据库索引中的经典应用,也会涉及到几种数据库中对此支持的细微不同,以期比较完整的[......]

阅读全文

Tags: , , ,

Comments { 0 }

Elasticsearch的几个重要概念(Mapping、Document、Index、Node、Shard)

关于Elasticsearch使用中的几个重要的概念整理如下。包括MappingDocumentindex等逻概念,也包括Node?shard等物理概念。(本身这样区分逻辑和物理也是有些问题的)。几个逻辑概念和熟悉的关系数据库中的概念比较,便于理解;而几个重要的物理概念,和Hadoop使用中对应的几个熟悉的概念类比,便于理解。

逻辑概念

要理解逻辑概念,先看下ESRestful接口中一个经典URL,表示一个索引文档。

es_url_format

  • Index?对应一个逻辑数据库。一个index是一个索引的集合。
  • Mapping对应数据库里的表定义。Mapping是对于index上每种type的定义
  • Type?则是数据库里的一个表。是index上的一类document
  • Document是数据库里的一个行。对应一个type的一个实例。

官方解释:

mapping

A?ma[......]

阅读全文

Tags: , ,

Comments { 0 }

豆豆明天一岁半啦!

豆豆明天一岁半啦!

1. 会坑爹了,不但坑爹,还会坑爹的爹,把垫子角塞到爷爷手里,然后直直的躺在垫子上,让爷爷拖着自己满客厅的转,真是会享受啊。

2.会思考使用合适的工具啦, 把乒乓球丢到床下,打算找晾衣杆给勾出来,找不到有撅着屁股把笤帚拖过来。

Tags:

Comments { 0 }