开发者社区 > 数据库 > 正文

IVFFlat索引设计的原理是什么样的?

IVFFlat索引设计的原理是什么样的?

展开
收起
vncamyi27xznk 2021-12-23 09:24:01 817 0
1 条回答
写回答
取消 提交回答
  • image.png 根据原理,把Page进分进行了分类,分为三种类的Page: 首先是Meta Page,负责存储两种Page的入口、查询的入口以及一些配置项,在MetaPage这种存储。 第二类是中心点Page,中心点Page是用于存储中心点数据的,要对全局向量进行聚类,例如这张图得到两个中心点,多的话可能会有更多的中心点,这些中心点存储在中心点Page中,连续存储,当一个page存不下的时候,会通过PageTailer这个结构来存储下一个页面的起始地址,将这些Page连成一个Pagelist,这种方式来存储一个中心点Page链表。 第三类是DataPage,用于存储原始向量数据。 如图所示,分为两个类簇,这两个类簇数据是存储在两个数据链条中,存储结构其实和中心点的存储结构类似,在中心点Tuple中存储了它对应的数据链条的起始地址,查询查询的时候,首先把query向量和中心点向量依次进行比较。 查到最近的中心点,通过中心点Tuple结构,定位到datalist的入口地址,从入口地址依次遍历它的dataPage进行比对,查到最近的向量,这就是IVFFlat算法的实现原理。

    答复内容摘自《PostgreSQL实战教程》,这本电子书收录开发者藏经阁 下载连接:https://developer.aliyun.com/topic/download?id=1168

    2021-12-23 10:51:46
    赞同 展开评论 打赏
问答分类:
问答地址:

数据库领域前沿技术分享与交流

相关电子书

更多
RowKey与索引设计:技巧与案例分析 立即下载
Phoenix 全局索引原理与实践 立即下载
事务、全局索引、透明分布式 立即下载