Bases de données relationnelles vs bases de données vectorielles
Les bases de données posent depuis longtemps des défis pour les performances des applications, nécessitant souvent un réglage fin approfondi. En réponse, de nouvelles conceptions de bases de données ont émergé pour améliorer l’évolutivité, les performances et la productivité des développeurs, simplifiant la création de types spécifiques d’applications.
Néanmoins, ces nouvelles solutions de bases de données s’accompagnent de compromis. Chaque conception implique des concessions, où certains avantages sont obtenus au détriment d’autres. Comprendre ces options et leurs compromis est essentiel pour choisir le meilleur outil pour vos besoins. Dans cet article, nous explorerons les bases de données vectorielles et les comparerons aux bases de données relationnelles traditionnelles afin de vous aider à prendre une décision bien éclairée.
Pourquoi choisir une base de données spécialisée pour votre application ?
Ces dernières années, on a observé une forte hausse des bases de données spécialisées adaptées à des cas d’utilisation spécifiques :
Base de données orientée graphe : Conçues pour stocker et analyser efficacement des données fortement connectées, les bases de données orientées graphe excellent dans la gestion des relations entre les points de données (knowledge graph).
Base de données de recherche : Ces bases de données gèrent des données non structurées ou semi-structurées et sont optimisées pour une recherche et des requêtes rapides et efficaces.
Base de données de séries temporelles : Optimisées pour un débit d’écriture élevé et les requêtes temporelles, les bases de données de séries temporelles traitent des charges de travail avec des entrées de données horodatées fréquentes et à grande échelle.
Base de données clé-valeur : Connues pour leurs hautes performances et leur évolutivité, les bases de données clé-valeur stockent les données sous forme de simples paires clé-valeur sans métadonnées supplémentaires, ce qui les rend idéales pour des opérations de lecture et d’écriture rapides.
Base de données en mémoire : Ces bases de données stockent les données dans la RAM plutôt que sur disque, éliminant les délais d’accès au disque et améliorant considérablement les performances.
Base de données vectorielle : Ces bases de données sont conçues pour stocker des embeddings vectoriels et sont optimisées pour gérer la recherche sémantique, intensive en calcul.
Bien que les bases de données relationnelles (RDBMS) restent dominantes en termes de part de marché, les bases de données conçues pour des usages spécifiques gagnent rapidement du terrain, les bases de données vectorielles, de séries temporelles, clé-valeur et orientées graphe enregistrant la croissance la plus importante au cours des deux dernières années.
Le passage aux bases de données spécialisées est motivé par des exigences croissantes en matière de performances et de fonctionnalités avancées, car les utilisateurs s’attendent à ce que les logiciels répondent aux normes élevées établies par les grandes entreprises technologiques. De plus, l’essor des architectures de microservices a facilité l’adoption de bases de données spécialisées. Les microservices, déployables indépendamment et abstraits les uns des autres, permettent aux équipes de sélectionner les meilleurs outils pour des fonctions d’application spécifiques sans connaissance approfondie des technologies des autres services.
Cependant, l’intégration d’une autre base de données dans une architecture ajoute de la complexité. Il est crucial d’évaluer si les avantages d’une base de données spécialisée l’emportent sur les coûts et les complexités. Une évaluation approfondie des avantages et des inconvénients est essentielle avant de prendre des décisions qui affecteront votre application à long terme.
"En pratique, parvenir à un système unifié de gestion des données prenant en charge diverses charges de travail et applications est difficile. En comparaison avec l’industrie automobile, nous ne pouvons pas imaginer un seul véhicule qui réponde à tous les usages — SUV, camions, berlines et bus scolaires sont conçus avec des fonctions spécifiques à l’esprit. De même, dans le monde des bases de données, les systèmes sont optimisés pour différents besoins, et une solution universelle est peu probable. L’avenir réside dans le développement de bases de données plus spécialisées, adaptées à des exigences spécifiques. Même si nous pourrions voir apparaître des interfaces ou des SDK unifiés pour interagir avec divers systèmes de bases de données, la tendance se poursuivra vers des solutions de plus en plus spécialisées." Charles Xie, fondateur et CEO de Zilliz.**
Vue d’ensemble des bases de données relationnelles
Les bases de données relationnelles, également connues sous le nom de bases de données traditionnelles, sont des outils polyvalents qui gèrent les données sous forme tabulaire. Cette structure, organisée en lignes et en colonnes, permet un stockage et une récupération efficaces des données, généralement gérés sur disque. L’utilisation de SQL renforce encore leur polyvalence, en prenant en charge un large éventail de requêtes. Cette adaptabilité rend les bases de données relationnelles adaptées à diverses applications. Elles sont particulièrement appréciées pour leur capacité à imposer des relations structurées entre les ensembles de données, garantissant la cohérence et l’intégrité des données grâce à des schémas prédéfinis.
Stockage des données : lignes et colonnes
Les bases de données relationnelles utilisent une disposition systématique de lignes et de colonnes pour stocker les données. Chaque ligne représente un enregistrement unique, tandis que chaque colonne représente un champ de données ou un attribut. Ce format organisé facilite l’accès aux données et leur gestion, permettant aux utilisateurs de naviguer dans les magasins de données et de mettre à jour efficacement les informations au sein de la base de données.
Capacités de requête
Le langage de requête structuré (SQL) est une caractéristique clé des bases de données relationnelles, permettant aux utilisateurs de formuler des requêtes précises pour extraire et manipuler ensemble des données complexes. SQL fournit un cadre robuste pour filtrer, trier et récupérer les données, ce qui facilite l’exécution de recherches et d’opérations complexes sur de grands ensembles de données. En utilisant SQL, les utilisateurs peuvent rapidement identifier les informations pertinentes et générer des rapports détaillés selon des critères spécifiques.
Propriétés ACID
Les transactions des bases de données relationnelles sont régies par quatre propriétés clés connues sous le nom de ACID : atomicité, cohérence, isolation et durabilité. L’atomicité garantit que tous les aspects d’une transaction sont achevés dans leur ensemble, sans laisser de mises à jour partielles. La cohérence préserve l’intégrité des données, en veillant à ce que les transactions conduisent à des états valides. L’isolation empêche les transactions de s’affecter mutuellement tant qu’elles ne sont pas entièrement validées, évitant ainsi les conflits. Enfin, la durabilité garantit qu’une fois une transaction validée, les modifications sont permanentes, même en cas de défaillance du système.
Aperçu des bases de données vectorielles
Alors, qu’est-ce qu’une base de données vectorielle exactement ? Fondamentalement, une base de données vectorielle est un système spécialisé conçu pour traiter des données non structurées en exploitant leurs représentations vectorielles et leurs embeddings. Cette approche permet une récupération rapide des informations sémantiques et des recherches de similarité efficaces.
Les bases de données vectorielles sont essentielles dans l’écosystème moderne de l’IA, en particulier dans la génération augmentée par récupération (RAG). La RAG améliore les performances des grands modèles de langage (LLMs) en intégrant des connaissances externes, ce qui contribue à atténuer les hallucinations de l’IA et améliore la précision des réponses générées. Ces bases de données gèrent et récupèrent les informations contextuelles que les LLMs utilisent pour produire des réponses plus fiables.
Elles sont largement appliquées dans divers domaines, notamment les chatbots, les systèmes de recommandation et les recherches multimédias telles que la récupération d’images, de vidéos et d’audio.
Bases de données vectorielles vs bases de données relationnelles
Les bases de données relationnelles traditionnelles excellent dans la gestion des données structurées, l’utilisation de schémas prédéfinis et la réalisation de recherches précises au sein de formats de données tabulaires. À l’inverse, les bases de données vectorielles, grâce à leur capacité unique à traiter des données non structurées telles que des images, de l’audio, des vidéos et du texte en représentant ces types de données sous forme de vecteurs à haute dimension, ouvrent un monde de possibilités. Contrairement aux bases de données relationnelles, qui utilisent des lignes et des colonnes, les bases de données vectorielles stockent les données sous forme de vecteurs à dimensions multiples, en les regroupant selon leur similarité.
Bien que les bases de données relationnelles comme MySQL et PostgreSQL aient longtemps été le choix privilégié de nombreux développeurs, on observe un changement notable dans le secteur vers l’intégration de capacités de recherche vectorielle dans ces systèmes. Les utilisateurs de PostgreSQL, par exemple, se tournent de plus en plus vers Pgvector pour leurs besoins en bases de données vectorielles, signalant une tendance croissante dans le paysage des bases de données.
Pour prendre en charge les opérations basées sur les vecteurs, les bases de données relationnelles ajoutent généralement des technologies d’indexation comme HNSW (Hierarchical Navigable Small World) afin d’effectuer des recherches approximatives des plus proches voisins dans l’espace vectoriel. Cela est essentiel pour trouver des éléments similaires dans les applications pilotées par l’IA. De plus, ces bases de données offrent un stockage vectoriel aux côtés des données traditionnelles et maintiennent la compatibilité SQL, permettant aux utilisateurs d’exploiter des commandes SQL familières pour gérer et interroger les données vectorielles.
Cependant, contrairement à Pgvector, qui n’est pas un moteur de recherche vectorielle complet mais plutôt un plugin pour les bases de données PostgreSQL, les bases de données vectorielles dédiées telles que Milvus et Zilliz Cloud sont conçues dès le départ pour gérer et interroger des milliards de vecteurs de grande dimension avec des performances quasi en temps réel. Ces bases de données spécialisées exploitent des techniques d’indexation avancées pour gérer efficacement les recherches de similarité, offrent des performances supérieures pour les opérations basées sur la similarité et prennent en charge la gestion de données vectorielles à grande échelle. Elles proposent également des API robustes adaptées aux applications d’IA et d’apprentissage automatique, ce qui les rend bien adaptées aux besoins complexes et à grande échelle en matière de données vectorielles.
Pourquoi les index vectoriels sont importants
Pendant la phase de prototypage, charger toutes les données en mémoire est courant pour un traitement plus rapide et un développement plus simple. Cependant, à mesure que les données augmentent en production, cette approche devient impraticable en raison de :
Limitations de la mémoire : La mémoire est à la fois limitée et plus coûteuse que le stockage sur disque.
Problèmes de capacité : Les grands ensembles de données peuvent dépasser la mémoire disponible.
Impact sur les performances : Stocker toutes les données en mémoire peut augmenter le temps de démarrage et la consommation de ressources.
Pour gérer efficacement de grands ensembles de données en production, le choix de la bonne stratégie d’indexation est crucial et important. Un index vectoriel approprié optimise les performances de votre application de Génération augmentée par récupération (RAG) en équilibrant la vitesse des requêtes, les besoins de stockage et la latence. Le diagramme ci-dessous aide à visualiser les performances des différents index selon trois métriques clés, soulignant l’importance de votre rôle dans le processus.
Indices pris en charge par Milvus
Requêtes par seconde (QPS) : Mesure la capacité de traitement des requêtes de l’index par seconde, indiquant le débit et l’efficacité.
Stockage : Reflète l’espace disque requis pour l’index, ce qui a un impact sur les coûts d’infrastructure et l’évolutivité.
Latence : Représente le temps nécessaire pour traiter et renvoyer les résultats de requête, affectant la réactivité de l’application.
En comparant ces métriques, vous pouvez choisir l’index qui correspond le mieux à votre cas d’utilisation et à vos besoins de performance.
Milvus propose un cadre flexible de sélection d’index adapté à diverses exigences de stockage et de performance :
Index GPU : Idéal pour les environnements haute performance, prenant en charge un traitement et une récupération rapides des données.
Index en mémoire : Offre un équilibre entre performance et capacité, adapté aux taux de requêtes par seconde (QPS), et évolue jusqu’à des téraoctets de stockage avec une latence moyenne d’environ dix millisecondes.
Index disque : Gère des dizaines de téraoctets avec une latence d’environ 100 millisecondes, adapté aux jeux de données plus volumineux et moins sensibles au temps. Milvus est unique en tant que seule base de données vectorielle open source prenant en charge les index disque.
Index Swap : Facilite l’échange de données entre S3 ou d’autres stockages d’objets et la mémoire, réduisant les coûts d’environ dix fois tout en gérant la latence. Les temps d’accès typiques sont d’environ 100 millisecondes, mais peuvent s’étendre à quelques secondes pour les données consultées moins fréquemment, ce qui le rend adapté à une utilisation hors ligne et aux applications sensibles aux coûts.
Après avoir sélectionné un index, évaluez ses performances en fonction du temps de construction, de la précision, des performances et de l’utilisation des ressources. Par exemple, un index non optimisé peut ne prendre en charge que 20 requêtes par seconde, tandis qu’un index optimisé pourrait augmenter le QPS par dix à chaque itération de réglage, bien que cela puisse également augmenter le temps de construction.
Pour choisir et affiner efficacement votre index :
Sélectionnez le type d’index en fonction de vos besoins.
Ajustez les paramètres de l’index pour optimiser les performances.
Évaluez vos cas d’utilisation afin de garantir les performances attendues.
Ajustez les paramètres de recherche pour améliorer davantage les résultats.
Pour vous guider tout au long du processus d’optimisation, utilisez des outils de benchmarking comme VectorDBBench. Développé et mis en open source par Zilliz, VectorDBBench évalue diverses bases de données vectorielles, permettant des expérimentations complètes et un réglage fin du système pour des performances optimales.
Une antisèche est disponible pour une référence rapide, décrivant les performances de chaque index dans notre catalogue d’index GPU, vous aidant à optimiser les performances et la rentabilité en vous orientant vers le meilleur index pour votre application.
Une antisèche des index
Benchmarks de performance des bases de données relationnelles pour la recherche vectorielle
Comme mentionné, les bases de données relationnelles traditionnelles utilisent souvent 1 à 2 index vectoriels, ce qui peut entraîner des problèmes de performance lors du traitement de données vectorielles à grande échelle. Pour mettre en évidence ce défi, VectorDBBench est un outil open source conçu pour le benchmarking des bases de données vectorielles. Il évalue diverses bases de données, index vectoriels et services cloud grand public, fournissant des métriques impartiales sur les requêtes par seconde (QPS), les requêtes par dollar (QP$) et la latence P99.
Par exemple, VectorDBBench peut comparer Pgvector à Milvus ou Zilliz. Les résultats des benchmarks montrent systématiquement que Milvus et Zilliz offrent des performances supérieures en QPS, vitesse et latence par rapport à Pgvector.
Remarque : Il s’agit d’un score de 1 à 100 basé sur les performances de chaque système dans différents cas selon une règle spécifique. Un score plus élevé indique de meilleures performances.
Remarque : Il s’agit d’un score >1 basé sur les performances de chaque système dans différents cas selon une règle spécifique. Un score plus faible indique de meilleures performances.
Avec VectorDBBench, vous pouvez rapidement comprendre quelle base de données offre de meilleures performances selon diverses métriques. Vous pouvez également déterminer quelle base de données correspond le mieux à vos besoins spécifiques.
Cas d’utilisation des bases de données vectorielles
Les bases de données traditionnelles sont principalement utilisées pour traiter des transactions, suivre les stocks ou gérer la paie, tandis que les bases de données vectorielles excellent dans le soutien au développement de certains cas d’utilisation impressionnants basés sur l’IA.
Retrieval Augmented Generation (RAG)
Élargissez les connaissances des LLM en intégrant des sources de données externes dans les LLM et vos applications d’IA.
Système de recommandation
Recommandez des informations ou des produits aux utilisateurs en fonction de leurs comportements et préférences passés.
Recherche de similarité multimodale
Effectuez des requêtes à travers différentes modalités telles que les textes, les vidéos, l’audio et les images.
Recherche de similarité moléculaire
Recherchez des sous-structures, des superstructures et d’autres structures similaires pour une molécule spécifiée.
Conclusion : base de données vectorielle vs base de données relationnelle
Choisir la bonne base de données pour votre application n’est pas seulement important ; c’est essentiel. Les bases de données relationnelles sont efficaces pour gérer des données structurées et exécuter des requêtes complexes avec SQL. En revanche, les bases de données vectorielles sont conçues pour gérer des données non structurées et des recherches en haute dimension, offrant de meilleures performances pour les tâches d’IA et d’apprentissage automatique. Le poids de cette décision ne peut être surestimé.
Grâce à leurs capacités avancées d’indexation et de recherche, les bases de données vectorielles surpassent souvent les bases de données relationnelles traditionnelles dans la gestion de données à grande échelle et en haute dimension. Toutefois, l’ajout de bases de données vectorielles spécialisées peut alourdir votre configuration et accroître la complexité ; il est donc important d’évaluer si les avantages justifient cette complexité supplémentaire.
Choisir la bonne stratégie d’indexation et des outils d’évaluation comparative comme VectorDBBench peut aider à optimiser les performances et à garantir que vous faites le meilleur choix pour vos besoins.
Pour plus d’informations sur les solutions de bases de données et les performances, consultez Zilliz Cloud.
Continuer à lire

Top 10 Context Engineering Techniques You Should Know for Production RAG
A practical guide to context engineering for production LLM systems, covering RAG, context processing, memory, agents, and multimodal context.

Milvus 2.6.x Now Generally Available on Zilliz Cloud, Making Vector Search Faster, Smarter, and More Cost-Efficient for Production AI
Milvus 2.6.x is now GA on Zilliz Cloud, delivering faster vector search, smarter hybrid queries, and lower costs for production RAG and AI applications.

Introducing Business Critical Plan: Enterprise-Grade Security and Compliance for Mission-Critical AI Applications
Discover Zilliz Cloud’s Business Critical Plan—offering advanced security, compliance, and uptime for mission-critical AI and vector database workloads.



