向量检索

PolarDB MySQL向量检索将向量相似性搜索能力深度集成于数据库内核。在存储和处理结构化数据的同时,可对文本、图片、音频等非结构化数据生成的向量进行高效的相似性检索。您无需搭建和维护独立的向量数据库及复杂的数据同步链路,即可在PolarDB集群内构建AI应用,如语义搜索、智能推荐、以图搜图等。PolarDB提供两种向量检索协议,以适应不同技术栈和业务场景:完全兼容MySQL协议,以及兼容主流搜索生态的OpenSearch协议(PolarSearch)。

核心概念

  • 向量嵌入 (Vector Embedding) :一种将现实世界中的非结构化数据(如文本、图像)通过预训练的嵌入模型转换为数值数组(即向量)的技术。这些向量能够捕捉数据的深层语义信息,使得机器可以理解和比较它们的相似性。

  • 相似性搜索(k-NN):k-最近邻搜索。其核心目标是在海量向量数据中,找到与给定查询向量“距离”最近的k个向量。这里的“距离”可以通过不同的数学公式计算,代表了数据在语义上的相似程度。

  • 向量索引:为了避免在海量数据中进行逐一的全量比对,需要预先建立向量索引。索引是一种为高效查询而优化的数据结构,它能根据向量的分布特征,在查询时快速缩小搜索范围,从而在保证召回率的同时,将检索延迟从秒级降低到毫秒级。

  • 向量索引算法对比PolarDB支持多种业界主流的向量索引算法,其中HNSWIVF是最常用的两种,它们在性能、资源消耗和适用场景上各有侧重。

    • HNSW(Hierarchical Navigable Small World):一种基于图的索引,具有高性能和高召回率的优点,但内存开销也相应较大。适用于对查询延迟和精度要求极高,且数据集大小在内存容量范围内的场景。

    • IVF(Inverted File):一种基于聚类的倒排索引,内存占用较低,更适合需要处理超大规模数据集且内存受限的场景,但其搜索精度通常略低于HNSW。

功能优势

PolarDB向量检索引擎将关系型数据库的易用性与专用向量数据库的高性能融为一体,与其他技术选型相比,具备显著优势。

特性

传统关系型数据库

专用向量数据库

PolarDB向量检索引擎

SQL支持

支持

不支持

支持

向量检索

性能差

高性能

高性能

学习成本

生态兼容

丰富

有限

双生态

扩展性

有限

良好

优秀

运维复杂度

简单

复杂

简单

除此之外,它还具备以下核心优势:

  • 一站式解决方案:无需引入独立的向量数据库,在PolarDB中即可同时处理业务数据和向量数据,有效简化系统架构,降低运维成本。

  • 企业级可靠性:全面支持ACID事务,保障数据一致性。分布式架构支持高可用和故障自动切换,确保业务连续性。

  • LLM紧密集成:内置了通义千问大模型的推理能力,简化了AI应用的开发链路。

核心能力与性能指标

检索性能

  • 延迟:P99(99%请求) < 10ms,P95(95%请求) < 5ms。

  • 吞吐量:单节点 > 10,000 QPS。

  • 精度:召回率 > 99%。

扩展能力

  • 数据规模:支持PB级向量数据,可支撑数十亿级向量检索。

  • 并发能力:支持数万并发查询。

  • 集群规模:支持动态扩容至数百个节点,具备智能数据分片策略。

资源效率

  • 存储压缩:向量数据压缩率 > 50%。

  • 内存使用:通过分层缓存技术,有效支持TB级图索引。

  • CPU利用率:通过多核并行优化,CPU利用率 > 80%。

应用场景

PolarDB提供双协议设计。您可根据团队技术栈、业务需求和性能预期,选择合适的协议。

对比维度

MySQL协议

OpenSearch协议

访问方式

标准SQL

RESTful API (兼容Elasticsearch/OpenSearch)

核心优势

与业务数据集成:支持对现有表添加向量列、支持ACID事务,学习成本低。

混合检索能力:支持向量、全文、标量等组合查询,生态成熟。

底层依赖

依赖列存索引(IMCI)。向量检索在列存索引只读节点上执行,实现分析与事务负载隔离。

运行在独立的搜索节点(PolarSearch)上,提供类似搜索引擎的服务。

数据同步

无需同步。数据写入主库后,对列存索引只读节点自动可见。

无需同步。数据写入主库后,对搜索节点自动可见。

智能问答与客服机器人

  • 业务痛点:传统的关键词匹配无法理解用户问题的真实意图,导致答案不准确。

  • 解决方案:将知识库中的“问题-答案”对转换为向量存储。当用户提问时,将其问题同样转换为向量,通过相似性搜索找到最匹配的几个知识点,从而提供更精准的回答。

  • 协议推荐

    • MySQL协议:如果仅需实现基础的语义匹配,且希望在现有MySQL应用中快速集成,此方案更便捷。

    • OpenSearch协议:如果需要结合关键词、分类标签等进行复杂筛选,推荐使用其混合搜索能力。

个性化推荐系统

  • 业务痛点:如何根据用户的历史行为(浏览、点击、购买)推荐其可能感兴趣的商品或内容。

  • 解决方案:将用户和物品(商品、文章、视频)都表示为向量。通过计算用户向量与物品向量的相似度,可以召回一批用户可能感兴趣的候选集,再结合其他策略进行精排。

  • 协议推荐

    • OpenSearch协议:推荐系统的召回层通常数据量巨大,且对性能和成本敏感。OpenSearch协议提供的IVF索引和PQ量化技术适用于应对海量数据和控制内存成本的场景。

以图搜图与多模态检索

  • 业务痛点:如何通过上传一张图片来查找相似的图片,或者通过文字描述来查找图片。

  • 解决方案:将图片和文本都转换为向量,并存储在PolarDB中。无论是输入图片还是文本,都将其转换为查询向量,在数据库中进行相似性搜索。

  • 协议推荐

    • MySQL协议:对于需要将图片特征向量与商品ID、价格等业务数据进行强一致性管理的场景,MySQL协议的事务能力是重要保障。

常见问题

PolarDB向量引擎与独立的向量数据库(如Milvus)相比有什么优势?

主要优势在于一体化和低成本。

  • 无需数据同步:向量数据与业务数据存储在同一系统内,避免了传统“MySQL + 向量数据库”架构中复杂的数据同步链路。

  • 简化技术栈:减少了一套独立的数据库系统,降低了开发、运维、学习的复杂度和总体拥有成本(TCO)。

  • 事务一致性:使用MySQL协议时,向量操作与业务数据操作可在同一事务中完成,保证数据的一致性。

使用MySQL协议进行向量检索为什么需要列存索引只读节点?

为了实现负载隔离和性能优化。向量检索属于计算密集型的分析类查询(AP),而数据库主节点通常承载在线交易(OLTP)负载。

  • 将向量检索放在列存索引只读节点上,可利用列式存储和并行计算的优势加速查询。

  • 该架构将分析负载与交易负载物理隔离,避免向量查询影响核心业务的稳定性和响应时间。