随笔分类 - 拉勾训练营
摘要:Query文档搜索机制剖析 1. query then fetch(默认搜索方式) 搜索步骤如下: 发送查询到每个shard 找到所有匹配的文档,并使用本地的Term/Document Frequery信息进行打分 对结果构建一个优先队列 返回关于结果的元数据到请求节点。注意,实际文档还没有发送,只
阅读全文
摘要:索引文档写入和近实时搜索原理 基本概念 Segments in Lucene 众所周知,Elasticsearch存储的基本单元是shard,ES中一个index可能分为多个shard,事实上每个shard都是一个Lucence的Index,并且每个Lucence Index由多个Segment组成
阅读全文
摘要:核心概念 集群(Cluster) 一个Es集群由多个节点(Node)组成,每个集群都有一个共同的集群名称作为标识 节点(Node) 一个Es实例就是一个Node。Es的配置文件中可以通过node.master、node.data来设置节点类型。 Es的节点有如下几个类型: 主节点 master节点在
阅读全文
摘要:说明:Es提供了多种不同的客户端: TransportClient:传统客户端,预计8.0版本会下掉 RestClient:官方推荐,它又包括两种 Java Low Level REST Client Java High Level REST Client ES在6.0后提供Java High Le
阅读全文
摘要:Elasticsearch是一个实时的分布式搜索引擎,为用户提供搜索服务,当我们决定存储某种数据时,在创建索引的时候需要数据结构完整确定下来,与此同时索引的设定和很多固定配置将不能改变。当需要改变索引结构时就需要重建索引。 下面介绍索引重建的3个方案: 方案一:外部数据导入方案 整体介绍 系统架构设
阅读全文
摘要:聚合分析 聚合分析是数据库中重要的功能特性,完成对一个查询的集中数据的聚合计算。如:最大值、最小值、求和、平均值等等。对一个数据集求和,算最大最小值等等,在ES中称为指标聚合,而对数据做类似关系型数据库那样的分组(group by),在ES中称为分桶。 语法: aggregations" : { "
阅读全文
摘要:Query DSL Es提供了基于JSON的完整查询DSL(Domain Specific Language 特定域的语言)来定义查询。将查询DSL视为查询的AST(抽象语法树)。它由两种子句组成: 叶子查询子句 叶子查询子句,在特定域中寻找特定的值,如match、term或range查询 复合查询
阅读全文
摘要:本文将分为3块讲解Es的基础操作。分别为:索引(index)、映射(mapping)、文档(document)。 索引操作 创建索引库 语法: PUT /索引名称{ "settings":{ "属性名":"属性值" } } settings:就是索引库的设置,可以定义如分片数、副本数等等。不设置的话
阅读全文
摘要:Elasticsearch简介 Elasticsearch是什么? Elaticsearch简称为ES,是一个开源的可扩展的分布式的全文检索引擎,它可以近乎实时的存储、检索数据。本身扩展性很好,可扩展到上百台服务器,处理PB级别的数据。ES使用Java开发并使用Lucene作为其核心来实现索引和搜索
阅读全文
摘要:Lucene存储结构 Lucene的索引结构是有层次结构的,主要分为以下几个层次: 索引(Index) 一个目录一个索引,在Lucene中一个索引是放在一个文件夹中的。同一个文件夹中的文件构成一个Lucene索引 段(Segment) 一个索引包含多个段,段与段之间是独立的,添加新文档可以生成新的段
阅读全文
摘要:Lucene 在了解Lucene之前,我们先了解下全文数据查询。 全文数据查询 我们的数据一般分为两种:结构化数据和非结构化数据 结构化数据:有固定格式或有限长度的数据,如数据库中的数据、元数据 非结构化数据:又叫全文数据,指不定长或无固定格式的数据,如邮件、word文档 数据库适合结构化数据的精确
阅读全文
摘要:Yearning 1.1 Yearning简介 Yearning开源的MySQL SQL语句审核平台,提供数据库字典查询、查询审计、SQL审核等多种功能。 Yearning 1.x版本需要Inception提供SQL审核及回滚功能 Inception是集审核、执行、回滚于一体的自动化运维系统,它是根
阅读全文
摘要:下载Mycat https://github.com/MyCATApache/Mycat-Server/releases Mycat基础分库 基础配置 修改server.xml <user name="root" defaultAccount="true"> <property name="pass
阅读全文
摘要:Mycat简介 Mycat是一个实现了MySQL协议的Server,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而后端可以用MySQL原生协议或JDBC协议与多个MySQL服务器通信,其核心功能是分库分表和读写分离,即将一个大表水平分割为N个小表,存储在后端MySQL服
阅读全文
摘要:基础分库 以下实例基于shardingsphere 4.1.0 + SpringBoot 2.2.5.RELEASE版本 依赖导入: <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <pr
阅读全文
摘要:分库分表 背景描述 在系统搭建刚开始的时候我们一般使用的是单机数据库或主从架构,但是随着业务的发展,数据量越来越大。我们会遇到下面的一系列问题: 用户请求量大 单台服务器TPS、内存、IO都是有上限的,我们需要将请求分散到多个服务器去 单库数据量太大 单个数据库处理能力有限;单库所在的服务器磁盘空间
阅读全文
摘要:MySQL性能优化 MySQL性能优化我们可以从以下四个维度考虑:硬件升级、系统配置、表结构设计、SQL语句和索引。 从成本上来说:硬件升级>系统配置>表结构设计>SQL语句及索引,然而效果却是由低到高。所以我们在优化的时候还是尽量从SQL语句和索引开始入手。 硬件升级 硬件升级这里不在过多赘述,升
阅读全文
摘要:索引类型 MySQL索引类型可以按不同纬度分为如下几种: 从索引存储结构划分:B Tree索引、Hash索引、FULLTEXT全文索引、R Tree索引 从应用层次划分:普通索引、唯一索引、主键索引、复合索引 从索引键值类型划分:主键索引、辅助索引(二级索引) 从数据存储和索引键值逻辑关系划分:聚集
阅读全文
摘要:MySQL体系架构 客户端连接器 提供与MySQL服务器建立的支持。目前几乎支持所有主流的服务端编程技术,例如常见的 Java、C、Python、.NET等,它们通过各自API技术与MySQL建立连接 连接池 负责存储和管理客户端与数据库的连接,一个线程负责管理一个连接。 系统管理和控制工具 例如备
阅读全文
摘要:Sentinel 是什么? 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 Sentinel 具有以下特征: 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场
阅读全文

浙公网安备 33010602011771号