美文网首页
数据分片--数据分片与次级索引

数据分片--数据分片与次级索引

作者: MontyOak | 来源:发表于2018-05-13 20:43 被阅读5次

如果所有数据的查询操作都仅仅依赖数据主索引的话,情况和KV结构下的数据分片一样。但是有时还需要根据其他条件进行数据筛选,比如查询某用户某一天的记录,所有包含某商品的购物车信息等等。

按文档划分的次级索引

现在以一个汽车销售网站为例,每辆汽车以一个实体的形式存放在数据库中,按照唯一id进行数据分片。常见的查询条件有汽车颜色、汽车品牌、汽车型号(这些都是文档中的字段)等等。

汽车销售网站示例
这种在增加/修改时创建的用于查询的次级索引,只包含本身数据片的内容,所以也叫本地索引(local index)
这时按次级索引的查询需要向所有数据片发送查询请求,将结果分别查询之后在进行一次聚合。这常常会导致某一个慢查询拖累整个查询的情况。

按区间划分的次级索引

不同于之前提到的本地索引,我们可以构造一个全局索引。按照索引的区间划分不同数据片的数据内容。这样可以降低查询操作的成本,查询操作只需要从部分数据片中读取数据;缺点在于增加了写操作的复杂度,需要额外维护数据与分片的关系。


按区间划分的次级索引

当写/更新操作进行时,有时会引发跨节点的数据更新操作,分布式事务引入了额外的复杂度。所以,索引的更新和写操作一般是异步执行的,先进行写操作,再异步更新索引。

相关文章

  • 数据分片--数据分片与次级索引

    如果所有数据的查询操作都仅仅依赖数据主索引的话,情况和KV结构下的数据分片一样。但是有时还需要根据其他条件进行数据...

  • ElasticSearch-索引原理

    索引分片 索引分片-水平扩展: 索引分片-应对故障: 数据路由 路由策略: 1、 路由公式:shard = has...

  • ElasticSearch(七):分布式特性

    一 分片和副本 分片特性分片存储部分数据,可以分布任意节点上;分片在创建索引时指定且不许更改,默认为5个;分片有主...

  • Sharding-JDBC-Java配置

    JAVA配置 配置示例 数据分片 读写分离 数据分片 + 读写分离 数据分片 + 数据脱敏 治理 配置项说明 数据...

  • ElasticSearch修改分片数和副本数及增加字段

    一、修改副本数 二、修改分片数ElasticSearch中的数据会被分别存储在不同的分片上,索引库的分片数量是在索...

  • Sharding-JDBC-Yaml配置

    YAML配置 配置示例 数据分片 读写分离 数据分片 + 读写分离 数据分片 + 数据脱敏 治理 配置项说明 co...

  • 第三章 索引、文档与Mapping

    一、核心概念 节点 节点就是一个ES的进程 分片 分片分为主分片与副本分片 主分片负责写入数据 副本分片只负责查询...

  • 【es】es数据迁移之reindex

    一、背景 1. 当你的数据量过大,而你的索引最初创建的分片数量不足,导致每个分片上承载的数据量太大,数据入库变慢,...

  • Mycat分库--ER Join实践

    概述 基于 E-R 关系的数据分片策略,子表的记录与所关联的父表记录存放在同一个数据分片上。 ER分片 ER分片父...

  • 区块链没成规模,至少现在没有,但还有希望(五)

    建议的解决方案# 4:分片 区块链世界中的分片类似于传统软件系统中的数据库分片。对于传统数据库,分片是数据库中数据...

网友评论

      本文标题:数据分片--数据分片与次级索引

      本文链接:https://www.haomeiwen.com/subject/lupldftx.html