TiDB против Neo4j: выбор правильной векторной базы данных для ваших AI-приложений
Что такое векторная база данных?
Прежде чем сравнивать TiDB и Neo4j, давайте сначала рассмотрим концепцию векторных баз данных.
Векторная база данных специально разработана для хранения и запроса многомерных векторов, которые являются числовыми представлениями неструктурированных данных. Эти векторы кодируют сложную информацию, такую как семантический смысл текста, визуальные признаки изображений или атрибуты продуктов. Обеспечивая эффективный поиск по сходству, векторные базы данных играют ключевую роль в приложениях ИИ, позволяя проводить более продвинутый анализ и извлечение данных.
Распространенные варианты использования векторных баз данных включают рекомендации товаров в электронной коммерции, платформы обнаружения контента, обнаружение аномалий в кибербезопасности, анализ медицинских изображений и задачи обработки естественного языка (NLP). Они также играют важнейшую роль в Retrieval Augmented Generation (RAG) — методе, который повышает производительность больших языковых моделей (LLMs), предоставляя внешние знания для уменьшения таких проблем, как галлюцинации ИИ.
На рынке доступно множество типов векторных баз данных, включая:
- Специализированные векторные базы данных, такие как Milvus, Zilliz Cloud (полностью управляемый Milvus)
- Библиотеки векторного поиска, такие как Faiss и Annoy.
- Легковесные векторные базы данных, такие как Chroma и Milvus Lite.
- Традиционные базы данных с дополнениями для векторного поиска, способные выполнять векторный поиск малого масштаба.
TiDB — это традиционная база данных, а Neo4j — графовая база данных. Обе имеют векторный поиск в качестве дополнения. В этой статье сравниваются их возможности векторного поиска.
TiDB: обзор и базовая технология
TiDB, разработанная PingCAP, — это распределенная SQL-база данных с открытым исходным кодом, которая предлагает возможности гибридной транзакционной и аналитической обработки (HTAP). Она совместима с MySQL, что упрощает внедрение для команд, уже знакомых с экосистемой MySQL. Распределенная SQL-архитектура TiDB обеспечивает горизонтальную масштабируемость, как у NoSQL-баз данных, при этом сохраняя реляционную модель SQL-баз данных, что делает ее весьма гибкой для обработки как транзакционных, так и аналитических нагрузок.
Одной из ключевых сильных сторон TiDB является ее HTAP-архитектура, которая позволяет обрабатывать транзакционные (OLTP) и аналитические (OLAP) нагрузки в одной базе данных, снижая необходимость в отдельных системах. Кроме того, совместимость TiDB с MySQL упрощает интеграцию в существующие среды, которые полагаются на MySQL, без существенных изменений в коде приложения. База данных также оснащена автошардингом, автоматически распределяя данные по узлам для повышения производительности чтения и записи при сохранении строгой согласованности.
TiDB поддерживает векторный поиск благодаря интеграции с внешними библиотеками и плагинами, обеспечивая эффективное управление и запросы к векторизованным данным. Эта функция в сочетании с HTAP-архитектурой TiDB делает ее универсальным вариантом для компаний, которым нужны возможности векторного поиска наряду с транзакционными и аналитическими нагрузками. Распределенная архитектура TiDB позволяет ей обрабатывать крупномасштабные векторные запросы после выполнения необходимых настроек.
Хотя включение функций векторного поиска в TiDB требует дополнительной настройки, совместимость системы с SQL позволяет разработчикам сочетать векторный поиск с традиционными реляционными запросами. Эта гибкость делает TiDB подходящей для сложных приложений, которым требуются как возможности векторного поиска, так и реляционной базы данных, предлагая комплексное решение для разнообразных потребностей управления данными.
Neo4j: Основы
Векторный поиск Neo4j позволяет разработчикам создавать векторные индексы для поиска похожих данных в их графе. Эти индексы работают со свойствами узлов, содержащими векторные эмбеддинги — числовые представления данных, таких как текст, изображения или аудио, которые отражают смысл данных. Система поддерживает векторы размерностью до 4096 и функции косинусного и евклидова сходства.
Реализация использует графы Hierarchical Navigable Small World (HNSW) для выполнения быстрого приближенного поиска k ближайших соседей. При запросе к векторному индексу вы указываете, сколько соседей хотите получить, и система возвращает соответствующие узлы, упорядоченные по показателю сходства. Эти показатели находятся в диапазоне 0–1, где более высокое значение означает большее сходство. Подход HNSW хорошо работает за счет поддержания связей между похожими векторами и позволяет системе быстро переходить к разным частям векторного пространства.
Создание и использование векторных индексов выполняется через язык запросов. Вы можете создавать индексы с помощью команды CREATE VECTOR INDEX и указывать параметры, такие как размерность векторов и функция сходства. Система будет проверять, что индексируются только векторы с настроенной размерностью. Запросы к этим индексам выполняются с помощью процедуры db.index.vector.queryNodes, которая принимает на вход имя индекса, количество результатов и вектор запроса.
Векторное индексирование Neo4j имеет оптимизации производительности, такие как квантизация, которая снижает использование памяти за счет сжатия векторных представлений. Вы можете настраивать поведение индекса с помощью таких параметров, как максимальное число соединений на узел (M) и число ближайших соседей, отслеживаемых во время вставки (ef_construction). Хотя эти параметры позволяют вам балансировать между точностью и производительностью, значения по умолчанию хорошо подходят для большинства сценариев использования. Система также поддерживает векторные индексы отношений начиная с версии 5.18, поэтому вы можете искать похожие данные в свойствах отношений.
Это позволяет разработчикам создавать приложения на базе ИИ. Объединяя графовые запросы с поиском по векторному сходству, приложения могут находить связанные данные на основе семантического смысла, а не точных совпадений. Например, система рекомендаций фильмов могла бы использовать векторы эмбеддингов сюжета для поиска похожих фильмов, одновременно используя структуру графа, чтобы гарантировать, что рекомендации относятся к тому же жанру или эпохе, которые предпочитает пользователь.
Ключевые различия
Методология поиска
TiDB: TiDB использует внешние библиотеки и плагины для векторного поиска, поэтому система интегрирует сторонние инструменты для обработки векторизованных данных. Это дает гибкость, но сильно зависит от внешней конфигурации для оптимизации производительности векторных запросов. Она может выполнять гибридные транзакционно-аналитические нагрузки (HTAP), поэтому это хороший выбор для приложений, которые сочетают векторный поиск с традиционными операциями на основе SQL.
Neo4j: Neo4j поддерживает векторное индексирование с использованием графов Hierarchical Navigable Small World (HNSW). Она может выполнять эффективный приближенный поиск k ближайших соседей (k-NN) со встроенной поддержкой косинусной и евклидовой метрик сходства. Методология Neo4j тесно интегрирована с ее графовой архитектурой, поэтому она может обрабатывать векторные запросы вместе с операциями обхода графа.
Данные
TiDB: Как распределенная SQL-база данных, TiDB хорошо справляется с управлением структурированными данными с совместимостью с MySQL. Она поддерживает гибридные нагрузки и может интегрировать неструктурированные данные через внешние инструменты, поэтому она хорошо подходит для сред, которым требуется сочетание управления реляционными и векторными данными. Но эта гибкость требует дополнительной настройки для задач, связанных с векторами.
Neo4j: Neo4j хороша для моделирования графовых данных и идеально подходит для управления сильно связанными и полуструктурированными данными. Ее встроенные возможности векторного поиска дополняют ее сильные стороны в обходе связей и работе с графовыми структурами. Она хороша для таких приложений, как рекомендательные системы, обнаружение мошенничества или графы знаний, которым требуется семантическое понимание и связи между сущностями.
Масштабируемость и производительность
TiDB: TiDB горизонтально масштабируема благодаря своей распределенной архитектуре. Автоматическое шардирование обеспечивает равномерное распределение данных по узлам, поэтому она хорошо подходит для крупномасштабных рабочих нагрузок. Но высокопроизводительный векторный поиск может потребовать настройки внешних библиотек и обеспечения оптимальной интеграции с архитектурой TiDB.
Neo4j: Производительность векторного поиска Neo4j оптимизирована с помощью графов HNSW, которые сокращают время выполнения запросов за счет структурирования связей между похожими векторами. Такие функции, как квантование, помогают экономить память, сохраняя при этом точность запросов. Хотя Neo4j хорошо масштабируется для графовых рабочих нагрузок, управление очень большими наборами векторных данных может потребовать тщательного планирования ресурсов.
Гибкость и настройка
TiDB: Гибкость обеспечивается совместимостью с SQL и интеграцией с существующими приложениями на базе MySQL. Она может сочетать векторные и реляционные запросы, поэтому хорошо подходит для приложений, которым нужно и то, и другое. Но настройка часто зависит от возможностей интегрированных векторных библиотек.
Neo4j: Будучи высоко настраиваемой для графовых приложений, Neo4j позволяет разработчикам настраивать параметры векторной индексации, чтобы сбалансировать производительность и точность. Она может интегрировать векторный поиск в графовые запросы, что является уникальным преимуществом для приложений, которые опираются на семантические связи.
Интеграция и экосистема
TiDB: TiDB хорошо интегрируется с инструментами и экосистемой MySQL, поэтому это естественный выбор для команд, уже работающих в SQL-ориентированном процессе. Векторный поиск требует внешних плагинов, но совместимость с более широкой экосистемой MySQL упрощает внедрение.
Neo4j: Интеграционные возможности Neo4j сильны в графо-ориентированной экосистеме, с хорошей поддержкой AI/ML-процессов. Она может обрабатывать графовые и векторные операции в одной среде, поэтому это большое преимущество для приложений на базе ИИ.
Простота использования
TiDB: Если вы знакомы с MySQL, порог входа в TiDB ниже. Но настройка векторного поиска требует понимания используемых внешних библиотек, что может добавить сложности.
Neo4j: Хотя графовый язык запросов Neo4j (Cypher) имеет более крутой порог входа для пользователей SQL, ее встроенный векторный поиск прост в использовании и требует меньше внешней настройки по сравнению с TiDB.
Стоимость
TiDB: Затраты зависят от количества распределенных узлов и дополнительных лицензионных или операционных расходов на интегрированные векторные библиотеки. Управляемые сервисы доступны, но увеличивают общую стоимость.
Neo4j: Стоимость Neo4j зависит от масштаба графовых рабочих нагрузок и требуемых функций. Для векторного поиска встроенная реализация имеет меньшие накладные расходы по сравнению с зависимостью TiDB от сторонних инструментов.
Безопасность
TiDB: Функции безопасности на базе SQL, шифрование, контроль доступа, аутентификация. Безопасность векторных операций зависит от используемой внешней библиотеки.
Neo4j: Встроенные функции безопасности, такие как шифрование и детализированный контроль доступа для графовых и векторных данных. Она интегрирует векторный поиск в основную платформу, поэтому управление безопасностью упрощается.
Когда использовать TiDB
TiDB предназначена для приложений, которым требуется крупномасштабное распределенное управление данными как с транзакционными, так и с аналитическими рабочими нагрузками. HTAP позволяет управлять структурированными данными и полуструктурированными или неструктурированными данными через внешние интеграции. Если ваш сценарий использования заключается в сочетании векторного поиска с SQL-запросами или интеграции векторных операций в существующую MySQL-совместимую среду, TiDB — гибкое и масштабируемое решение. Она идеально подходит для сценариев, где важны строгая согласованность и масштабируемость в распределенных системах.
Когда использовать Neo4j
Neo4j предназначена для приложений, основанных на графовых моделях данных и нуждающихся в расширенных возможностях для исследования связей между сущностями. Ее нативный векторный поиск, интегрированный с графовыми запросами, идеально подходит для создания приложений на базе ИИ, таких как рекомендательные системы, графы знаний или системы обнаружения мошенничества. Если вы сосредоточены на семантическом понимании и поиске связей в сильно связанных наборах данных, графо-ориентированный подход Neo4j с векторной индексацией является уникальным преимуществом. Сочетание обхода графа с поиском по сходству эффективно для рабочих нагрузок, в которых приоритетом является исследование связанных данных.
Резюме
TiDB и Neo4j предназначены для разных сценариев использования, каждая из них сильна в разных областях. Сильные стороны TiDB — гибридная транзакционная и аналитическая обработка, распределенная масштабируемость и совместимость с MySQL, поэтому это хороший выбор для SQL-ориентированных приложений, которым нужен векторный поиск. Графовая архитектура Neo4j и нативная векторная индексация идеально подходят для приложений, в которых приоритетом являются связи и семантические инсайты. Выбирайте между ними исходя из вашего сценария использования: нужны ли вам надежные возможности распределенного SQL с векторным поиском или графовая база данных, которая интегрирует векторный поиск в рабочие процессы со связанными данными. Оцените типы ваших данных, шаблоны рабочих нагрузок и требования к производительности, чтобы принять решение.
Прочитайте это, чтобы получить обзор TiDB и Neo4j, но для их оценки нужно исходить из вашего сценария использования. Один инструмент, который может в этом помочь, — VectorDBBench, инструмент с открытым исходным кодом для бенчмаркинга и сравнения векторных баз данных. В конечном итоге тщательное бенчмаркинг-тестирование на ваших собственных наборах данных и шаблонах запросов будет ключевым для принятия решения между этими двумя мощными, но разными подходами к векторному поиску в распределенных системах баз данных.
Использование Open-source VectorDBBench для оценки и сравнения векторных баз данных самостоятельно
VectorDBBench — это инструмент бенчмаркинга с открытым исходным кодом для пользователей, которым нужны высокопроизводительные системы хранения и извлечения данных, особенно векторные базы данных. Этот инструмент позволяет пользователям тестировать и сравнивать различные системы векторных баз данных, такие как Milvus и Zilliz Cloud (управляемый Milvus), используя собственные наборы данных, и находить ту, которая соответствует их сценариям использования. С VectorDBBench пользователи могут принимать решения на основе фактической производительности векторной базы данных, а не маркетинговых заявлений или слухов.
VectorDBBench написан на Python и лицензирован по open-source лицензии MIT, что означает, что любой может свободно использовать, изменять и распространять его. Инструмент активно поддерживается сообществом разработчиков, стремящихся улучшать его функции и производительность.
Загрузите VectorDBBench из его репозитория GitHub, чтобы воспроизвести наши результаты бенчмаркинга или получить результаты производительности на ваших собственных наборах данных.
Быстро ознакомьтесь с производительностью популярных векторных баз данных в VectorDBBench Leaderboard.
Прочитайте следующие блоги, чтобы узнать больше об оценке векторных баз данных.
Дополнительные ресурсы о VectorDB, GenAI и ML
Читать далее

We spent 8 years making vector databases faster. Then we stopped.
Rarely queried embeddings still need to stay searchable. See how Vector Lakebase enables on-demand vector search without always-on compute costs.

Announcing the General Availability of Single Sign-On (SSO) on Zilliz Cloud
SSO is GA on Zilliz Cloud, delivering the enterprise-grade identity management capabilities your teams need to deploy vectorDB with confidence.

Zilliz Cloud Delivers Better Performance and Lower Costs with Arm Neoverse-based AWS Graviton
Zilliz Cloud adopts Arm-based AWS Graviton3 CPUs to cut costs, speed up AI vector search, and power billion-scale RAG and semantic search workloads.
The Definitive Guide to Choosing a Vector Database
Overwhelmed by all the options? Learn key features to look for & how to evaluate with your own data. Choose with confidence.


