Database

MySQL中的重做日志,回滚日志,以及二进制日志的区别及各自作用

为什么 MySQL 选择 "可重复读" 作为默认隔离级别

MySQL日志之bin log

MySQL binlog 简述

解析MySQL事务隔离级别

MySQL日志 - Undo回滚日志的介绍


别再问我向量数据库是啥了,看完这篇你就全明白了

向量数据库:原理、索引技术与选型指南

向量数据库是一种专门用于存储、管理和查询高维向量数据的数据库系统。它是大语言模型(LLM)、生成式AI以及语义搜索的核心基础设施。
以下是关于向量数据库的全面解析:
1. 什么是向量?为什么需要专门的数据库?
 • 向量的本质:在AI领域,向量(Vector/Embedding)是一串长长的数字列表(通常有几百到上千个维度),用于表示文本、图像、音频等非结构化数据的“特征”或“语义”。
 • 传统数据库的局限:传统关系型数据库(如MySQL)擅长处理精确匹配的结构化数据(如数字、日期),但在面对复杂的语义理解、模糊匹配或多模态数据(如判断两张不同风格的猫的图片是否相似)时无能为力。

2. 核心工作原理
向量数据库的核心功能是高效的相似性搜索。
向量化:通过嵌入模型(Embedding Model)将文字、图片等转化为向量。
 1. 存储与索引:将向量及其对应的元数据(如原始文本、标签、ID)存入数据库。为了实现快速查找,数据库会使用特定的算法(如 HNSW、IVF)对向量进行“分组”或“建图”,这被称为近似最近邻(ANN)搜索。
 2. 检索:当用户输入查询时,系统会将其转化为向量,并在数据库中计算与已有向量的“距离”(如余弦相似度),找出最匹配的结果。

3. 核心应用场景
 • RAG(检索增强生成):通过向量数据库检索企业内部私有文档,提供给大模型作为上下文,从而有效解决大模型“幻觉”和知识过时的问题。
 • 语义搜索引擎:不再依赖关键词匹配,而是理解用户的查询意图(例如搜索“开心”,也能检索出包含“快乐”、“高兴”的内容)。
 • 个性化推荐系统:分析用户的历史行为向量,快速匹配出用户可能感兴趣的商品、视频或新闻。
 • 多模态检索:通过文字搜索图片,或通过图片搜索相似图片。 

4. 主流向量数据库盘点
根据不同的技术架构和业务需求,当前市场上有多种开源及商业托管方案可供选择:
Milvus:云原生、高扩展性的分布式开源数据库,非常适合百亿级海量向量的处理。
 • Qdrant:基于 Rust 编写,性能极高,非常适合高并发、低延迟的生产环境。
 • Weaviate:开源的原生向量搜索引擎,支持将向量与结构化数据进行强大的混合搜索。
 • Pinecone:流行的全托管云服务,开箱即用,适合中小型项目快速验证。
 • Chroma:轻量级的开源工具,专门为开发者在本地或小型项目中集成 LLM 应用而设计。

---------------
向量数据库的核心是通过高维向量进行语义相似度匹配。为了在数十亿数据中实现毫秒级查询,底层依赖各种近似最近邻(ANN)算法进行索引和降维聚类。以下是常见技术的核心解析:

HNSW (Hierarchical Navigable Small World)
 o 原理:构建层状的“跳表”图结构,越上层节点越稀疏,越底层越密集。查询时从上层粗略搜索,逐层深入至底层。
 o 特点:当前业界查询质量和召回率的天花板。内存占用极高,但查询速度极快。

IVF (Inverted File Index)
 o 原理:借鉴传统数据库思想,使用K-Means将向量空间划分为多个“Voronoi单元”(聚类中心)。查询时仅比对距离最近的几个簇,避免全库扫描。
 o 特点:查询速度快,支持动态增删改,可通过调整探查簇数量平衡速度与召回率。

PQ (Product Quantization)
 o 原理:将高维向量拆分成多个子向量,对每个子向量进行聚类并用中心点量化编码。通过压缩向量位数来大幅缩减内存占用。
 o 特点:极大地压缩了内存,常与IVF结合使用(IVFPQ),但计算过程中存在信息损失。

Annoy (Approximate Nearest Neighbors Oh Yeah)
 o 原理:基于随机超平面将空间反复二分,构建多棵二叉树森林。搜索时只在几何位置相近的树叶中进行局部匹配。
 o 特点:Spotify开源的算法,内存占用低,单机构建极其方便,但召回率略逊于HNSW。

LSH (Locality-Sensitive Hashing)
 o 原理:通过哈希函数将相似的高维向量映射到同一个桶(Bucket)中,查询时只需在特定的哈希桶内比对。
 o 特点:检索速度极快,更适用于传统的布尔查找或海量数据的初步过滤。

RP (Random Projection)
 o 原理:通过高维向低维的随机映射投影(如Johnson-Lindenstrauss引理),在基本保持向量间相对距离不变的情况下,压缩向量维度。
 o 特点:常作为预处理步骤,用于降低后续其他索引的计算复杂度。

DBSCAN (Density-Based Spatial Clustering of Applications with Noise)
 o 说明:这是一种基于密度的聚类算法,不属于近邻检索索引。它根据数据点在空间中的密集程度自动划分聚类簇,并能有效识别异常点。在向量处理中,常用于数据去重或无监督分类,而非向量检索。

结合使用
在实际应用中,通常会将多种技术结合起来使用以实现最佳性能。
例如,可以先使用DBSCAN进行初步聚类,然后对每个簇使用Annoy或HNSW进行高效搜索。或者使用IVF结合PQ来减少存储需求并加速查询速度。
每种技术都有其特定的应用场景和优势,选择合适的组合取决于具体的数据特性、查询需求以及性能要求。

总结
选择合适的向量数据库技术组合取决于你的具体需求,包括数据规模、查询类型、实时性要求以及存储效率等。
通过结合使用这些技术,你可以构建出既快速又高效处理大规模向量数据的系统