当数据库碰着漫衍式,你会怎么做?
当地索引 文档分区以是,在这种索引要领中,每个分区是完全独立的,每个分区维护本身的二级索引,仅包围该分区中的文档。当数据写入时(添加、删除、更新),只必要处理赏罚分区内数据的索引更新。数据查询时,则必要将查询发送到全部的分区,并归并全部返回的功效。 这种查询分区数据库的要领偶然被称为分手/聚积(scatter/gather),而且也许会是二级索引上的读取查询相等昂贵。纵然并行查询分区,已轻易导致尾部耽误放大。MongoDB、Cassandra、ElasticSearch、SolrCloud都是行使这种文档分区二级索引。 全局索引 要害词分区,这种索引要领跟主键分区的方法是一样的。相对付文档分区索引,读取更有服从,不必要分手/聚积全部分区,客户端只必要向包括要害词的分区发出哀求。弱点在于写入速率较慢且较为伟大,由于写入单个文档也许会影响索引的多个分区。 抱负环境下,索引老是最新的。写入数据库的每个文档城市当即反应在索引中。在基于要害词的全局索引中,这必要跨分区的漫衍式事宜,并不是全部的数据库都支持。在实践中,对全局二级索引的更新凡是是异步的。 分区再均衡 跟着数据集巨细增进、查询吞吐量的增进,必要更多的呆板来处理赏罚。这些都必要数据和哀求从一个节点移动到另一个节点,这一进程称为再均衡(reblancing)。 再均衡凡是要满意以下几点要求: 再均衡之后,负载(数据存储、读取和写入哀求)应该在集群中的节点之间公正地共享 再均衡产生时,数据库应该继承接管读取和写入 节点之间只移动必需的数据,以便快速再均衡,并镌汰收集和磁盘I/O负载 均衡计策可以分为几种:牢靠命量的分区、动态数目的分区和按节点比例分区 牢靠命量的分区 建设比节点更多的分区,并为每个节点分派多个分区。假如一个节点被添加到集群中,新节点可以从当前每个节点中窃取一些分区,直到分区再次公等分派。ElasticSearch行使这种方法分区计策。 只有分区在节点间移动,分区的数目不会改变,键所对应的分区也不会改变,独一改变的是分区地址的节点。这种改观不是及时的(收集上传输数据必要时刻),传输进程中,原有分区如故会接办读写哀求。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |