经过一个冬季的专注开发,我们很高兴地宣布 PlanetScale 对向量搜索和存储的支持已正式发布(GA)。自公开测试版启动以来,我们将查询性能提升了一倍,内存效率提高了八倍,并专注于鲁棒性,以确保向量支持与 MySQL 支持的其他数据类型一样可靠。我们尤其为向量索引的可扩展性感到自豪,即使索引大小达到可用内存的 6 倍,其性能依然出色。
我们将向量打造为 MySQL 的一等公民,这意味着写入和查询像普通 RDBMS 一样工作。将向量数据存储在现有键空间的列中。使用 ALTER 或 CREATE VECTOR INDEX 语句构建索引。像其他数据一样,编写带有 JOIN 和 WHERE 子句的 SELECT 语句。将写入操作包裹在事务中,并期望数据在事务提交后立即可见——或者在你要求时回滚。在添加和删除行时,索引将保持高性能,无需定期重建。
你依赖的所有 PlanetScale 功能同样适用于向量。创建一个分支。添加向量索引。打开部署请求并将索引合并到生产分支。如果改变主意,可以回滚。在其他副本上查询向量索引,甚至在其他区域。安心入睡,因为你的向量数据已包含在定时备份中。
我们不仅正确处理了关系型和运维方面。我们还构建了高级向量索引功能,以满足各种嵌入(embeddings)和用例。索引可以按欧几里得(L2)、内积或余弦距离对向量进行排序。它可以存储高达 16,383 维的任何向量。它同时支持固定量化和乘积量化。固定量化低至每个字段一位时速度极快,或者根据你的需求,简直是疯狂。
PlanetScale 向量支持最突出的特点之一是能够使用比 RAM 更大的索引。我们是第一个将基于 SPANN(空间分区近似最近邻)的索引集成到 RDBMS 中的。SPANN 是一种混合索引设计,结合了基于分区和基于树的索引的最佳方面。在 SPANN 中,向量被分配到小的分区中,这些分区存储在隐藏的 InnoDB 表中。每个分区中的一个向量(约占索引的 20%)存储在内存中的树结构中,使索引能够快速识别与查询相关的分区。在构建和查询索引时,只需要树和少量固定的相关分区在内存中,从而允许在向量数据高达可用内存 6 倍的情况下高效运行。在 PlanetScale Metal 上使用向量索引可确保从 InnoDB 加载向量分区以回答查询的速度尽可能快。
要开始使用向量,请转到任意数据库的“Branches”页面。点击你想要添加向量的分支,然后点击该分支右侧“Connect”按钮下方的小齿轮图标以进入分支设置。点击“Enable vectors”旁边的开关。按照向量文档中的示例创建向量列、添加数据,并创建和查询索引。
要了解更多关于向量嵌入的信息,请查看我们的 YouTube 视频:
你可以查看以下文档:
PlanetScale 向量概述
向量数据库术语和概念
向量搜索的常见用例
在 ORM 中使用 PlanetScale 向量
向量类型和索引参考
向量支持现已准备好在生产环境中使用。当你在数据库中使用向量进行构建时,我们欢迎反馈,以帮助我们持续提升性能和可用性。你可以提交支持工单来传达任何反馈或问题。我们的 Discord 中还有一个向量频道,你可以在那里提问、分享反馈或讨论用例。
转载声明:本文为转载整理,原文版权归原作者及原站点所有。
原文来源:PlanetScale Blog
原创地址:https://planetscale.com/blog/announcing-planetscale-vectors-ga
原文作者:PlanetScale Blog;如有侵权,请联系管理员删除。