天天看点

mysql 索引和Lucene索引

索引的本质就是映射,通过一个key找到想要的值。从这个角度看发现mysql索引和lucene索引其实是没有区别的。

mysql的索引是B树或者B+树,这只是索引的数据结构而已。前面说过一个key就是索引,key可以指向你想要的数据结果。

lucene的的索引叫做倒排索引,他的结构是字典或者B树或者B+树。这里也是通过一个key找到想要的结果。

所以说索引的本质就是映射。

再比如说kv数据库,redis的索引数据结构就是跳跃表,也是一个key对应一个value。

阿里巴巴的类目的数据结构是三组有序的数组,也是一个key对应一个value。

所有他们统统都可以归结到数据结构上去,并且都可以通过数学函数y=f(x)来表示。

就连一致性hash也是万变不离其宗----映射。

所有的索引都在追求一件事情----时间和空间。

时间就是优秀的查找算法,排序算法,

空间就是数据结构,找出最能节省内存空间的数据结构。(印象最深的就是阿里的类目,对应索引空间的优化,我简直给跪了)。

知我者为我心忧。

转载于:https://my.oschina.net/u/254456/blog/647953