Au-delà de PGVector : quand votre base de données vectorielle a besoin d’une mise à niveau digne de la Formule 1
Postgres, un ténor du monde des bases de données relationnelles, sert fidèlement les développeurs depuis plus de 28 ans. Avec l’introduction de son extension pgvector, Postgres a pris des mesures pour prendre en charge les vector embeddings, offrant un point d’entrée pratique pour la vector similarity search de base.
Cependant, bien que pgvector fournisse un point de départ pratique, il reste en deçà des vector databases conçues spécifiquement comme Milvus, en particulier lorsqu’il s’agit de gérer des applications à grande échelle et des exigences de recherche complexes. S’appuyer uniquement sur Postgres avec pgvector pour des charges de travail exigeantes de recherche vectorielle revient à essayer de participer à une course de Formule 1 avec une berline familiale gonflée à bloc : c’est un progrès, mais ce n’est tout simplement pas conçu pour ce niveau de compétition.
À mesure que les applications d’IA gagnent en popularité de façon explosive, les développeurs rencontrent des difficultés croissantes. Ce qui commence comme une solution pratique avec pgvector devient rapidement un goulot d’étranglement frustrant à mesure que les données augmentent et que les exigences de recherche deviennent plus sophistiquées. La qualité de recherche diminue, les mises à jour d’index s’éternisent, et la frustration monte tandis que vous peinez à répondre aux besoins de votre application.
Ce blog explique pourquoi Postgres, avec son module complémentaire de recherche vectorielle, pgvector, fonctionne bien pour les petits projets et les cas d’utilisation plus simples, mais atteint ses limites pour la recherche vectorielle à grande échelle. Nous verrons également pourquoi les bases de données vectorielles conçues spécifiquement comme Milvus sont indispensables pour relever les défis uniques de ce domaine en évolution rapide.
Le goulot d’étranglement de Postgres et Pgvector
Vous pouvez voir Postgres comme une berline ; elle existe depuis des années et fonctionne, mais elle ne vous permettra pas d’aller extrêmement vite. Bien que pgvector ajoute à Postgres des capacités de stockage vectoriel et de recherche de similarité de base, il hérite de limitations fondamentales :
- Performance à grande échelle : pgvector ne prend en charge que deux méthodes d’indexation : HNSW et IVF_FLAT. Bien que HNSW soit un algorithme populaire, il implique des compromis importants, notamment de longs temps d’indexation et des besoins en mémoire plus élevés. De son côté, IVF_FLAT offre une construction d’index plus rapide, mais peine à maintenir les performances des requêtes à mesure que le jeu de données s’étend. L’absence de prise en charge des index sur disque comme DiskANN ou des types d’index basés sur GPU limite davantage ses performances et sa flexibilité lorsqu’il s’agit de jeux de données à grande échelle.
- Vector embeddings à haute dimension : Pgvector ne peut pas gérer les vector embeddings à haute dimension en raison de contraintes architecturales. Il repose sur des pages fixes de 8KB pour le stockage des données, ce qui restreint fondamentalement le nombre de dimensions qu’un vecteur peut contenir. Comme chaque dimension nécessite 4 octets pour stocker un float et que les métadonnées occupent également de l’espace, l’indexation efficace de vecteurs à haute dimension devient impossible. À l’inverse, les bases de données conçues spécifiquement comme Milvus sont pensées pour gérer facilement les embeddings à haute dimension. Bien qu’il existe des solutions de contournement dans pgvector comme la quantification, elles exigent souvent de faire des compromis sur la précision.
- Manque de fonctionnalités avancées : pgvector ne dispose pas de l’ensemble complet de fonctionnalités fourni par les bases de données vectorielles conçues spécifiquement. Par exemple, Milvus prend en charge la recherche avancée avec filtrage des métadonnées, une gamme plus large de métriques de distance au-delà de L2 et du produit scalaire, la recherche hybride sparse et dense, et même la recherche plein texte (disponible dans Milvus 2.5).
- Défis de scalabilité : Faire évoluer pgvector pour gérer de grands jeux de données et des charges de requêtes élevées n’est pas trivial. Cela nécessite souvent des efforts considérables pour mettre en œuvre le sharding et gérer les index sur plusieurs nœuds, ce qui introduit une complexité supplémentaire et une surcharge opérationnelle. Les bases de données vectorielles conçues spécifiquement sont pensées avec la scalabilité à l’esprit, offrant des performances fluides même lorsque les jeux de données et les demandes de requêtes augmentent.
Milvus : La Formule 1
Milvus est une base de données vectorielle open source conçue dès le départ pour répondre aux exigences spécifiques de la recherche de similarité vectorielle à grande échelle. Pensez-y comme à une voiture de Formule 1, méticuleusement conçue pour la vitesse et la performance dans l’univers exigeant des données vectorielles.
Voici comment Milvus surpasse Postgres avec pgvector :
- Recherche ultra-rapide : Milvus prend en charge 11 algorithmes d’indexation de pointe, notamment FLAT, HNSW, DiskANN, CAGRA, ainsi que l’accélération GPU, afin d’offrir des performances de recherche inégalées, même avec des dizaines de milliards de vecteurs.
- Scalabilité sans effort : Milvus dispose d’une architecture distribuée et native Kubernetes. Elle permet une mise à l’échelle horizontale transparente, vous permettant de gérer des jeux de données massifs et un débit de requêtes élevé sans les complexités du sharding manuel.
- Ensemble complet de fonctionnalités : Milvus propose une suite complète de fonctionnalités, notamment le filtrage par métadonnées, la prise en charge de diverses métriques de distance, la recherche plein texte, la recherche hybride et des options d’indexation flexibles pour adapter votre stratégie de recherche à vos besoins spécifiques.
- Optimisé pour l’avenir des données : Milvus est conçu pour gérer l’échelle et la complexité du volume toujours croissant de données non structurées représentées sous forme de vecteurs, ce qui en fait la solution idéale pour la prochaine génération d’applications d’IA.
- Innovation continue : Tout comme une équipe de Formule 1 repousse constamment les limites de la performance, Milvus évolue en permanence avec des algorithmes d’indexation de pointe, la prise en charge de l’accélération matérielle et des optimisations pilotées par l’apprentissage automatique.
Faire le bon choix : quand utiliser quelle solution
Même si Postgres avec pgvector n’est peut-être pas une voiture de Formule 1, il a tout de même sa place au garage. Voyons quand utiliser chaque solution :
Choisissez pgvector lorsque :
- Vous construisez une preuve de concept ou un MVP avec des jeux de données de petite à moyenne taille.
- Vos besoins en recherche vectorielle sont simples et ne nécessitent pas de filtrage complexe.
- Vos modèles d’embedding produisent des vecteurs dont les dimensions restent sous les limites de taille de page de Postgres.
- Vous avez besoin de la conformité ACID et de solides garanties transactionnelles.
Choisissez Milvus lorsque :
- Vous travaillez avec des jeux de données à grande échelle (des millions à des milliards de vecteurs).
- Vous avez besoin d’embeddings à haute dimension au-delà des limites de pgvector.
- Les performances des requêtes sont essentielles pour votre application.
- Vous avez besoin de fonctionnalités avancées comme des options d’indexation variées ou l’accélération GPU.
- Vous anticipez une croissance rapide et avez besoin d’une solution qui se met à l’échelle horizontalement.
Migrer vos vecteurs vers Milvus avec notre service de migration
Si vous utilisez PGVector et rencontrez des problèmes, nous proposons un outil de migration open source appelé VTS (abréviation de Vector Transport Service) pour vous aider à déplacer vos vecteurs et vos données non structurées vers Milvus ou vers son service managé sur Zilliz Cloud.
Construit sur Apache Seatunnel, VTS offre :
- Des connecteurs riches et extensibles
- Un traitement unifié en flux et par lots pour la synchronisation en temps réel et les importations par lots hors ligne
- La prise en charge des instantanés distribués pour la cohérence des données
- Des performances élevées, une faible latence et une grande scalabilité
- Une surveillance en temps réel et une gestion visuelle
En plus de pgvector, VTS prend en charge la migration de données vectorielles depuis diverses sources, notamment Elasticsearch, Pinecone, Qdrant et Tencent Cloud VDB, vers des bases de données vectorielles spécialement conçues comme Milvus. Il permet également une migration vectorielle fluide entre Milvus open source et Zilliz Cloud, dans les deux sens.
Pour simplifier le processus de migration, VTS gère automatiquement la conversion des schémas, éliminant ainsi le besoin d’une configuration complexe et d’efforts de développement. En 2025, VTS étendra ses capacités afin de prendre en charge la migration des données depuis des sources supplémentaires comme MongoDB et Weaviate. Les futures versions introduiront également la capacité de générer des embeddings vectoriels à la volée, permettant aux données non structurées d’être facilement converties et transférées vers des bases de données vectorielles pour accélérer la recherche approximative du plus proche voisin (ANN). Restez à l’écoute pour ces mises à jour passionnantes !
Fonctionnement de VTS
La suite
Le paysage des bases de données vectorielles continue d’évoluer parallèlement aux progrès rapides des technologies d’IA. Bien que pgvector offre un point d’entrée pratique, les exigences des applications d’IA à l’échelle de la production nécessitent souvent des solutions spécialement conçues.
Le choix entre pgvector et Milvus représente bien plus qu’une simple décision technique. C’est un investissement stratégique dans la scalabilité future de votre application. Tout comme une écurie de Formule 1 sélectionne son équipement en fonction des exigences de performance, les organisations doivent évaluer leurs besoins en recherche vectorielle par rapport à leur trajectoire de croissance.
Avec des outils comme VTS qui rationalisent le processus de migration, les entreprises peuvent faire évoluer en toute confiance leurs capacités de recherche vectorielle lorsque leurs exigences dépassent les capacités de pgvector. Qu’il s’agisse de concevoir de nouvelles applications ou de faire évoluer des applications existantes, la prise en compte précoce des exigences en matière de recherche vectorielle peut éviter une dette technique et garantir une croissance durable.
Nous aimerions connaître votre avis !
Si vous aimez cet article de blog, veuillez envisager de :
- ⭐ Nous attribuer une étoile sur GitHub
- 💬 Rejoindre notre communauté Discord Milvus pour partager vos expériences ou si vous avez besoin d’aide pour passer de pgvector
- 🔍 Explorer notre référentiel Bootcamp pour des exemples d’applications utilisant Milvus
Continuer à lire

Balancing Precision and Performance: How Zilliz Cloud's New Parameters Help You Optimize Vector Search
Optimize vector search with Zilliz Cloud’s level and recall features to tune accuracy, balance performance, and power AI applications.

What is the K-Nearest Neighbors (KNN) Algorithm in Machine Learning?
KNN is a supervised machine learning technique and algorithm for classification and regression. This post is the ultimate guide to KNN.

DeepSeek Always Busy? Deploy It Locally with Milvus in Just 10 Minutes—No More Waiting!
Learn how to set up DeepSeek-R1 on your local machine using Ollama, AnythingLLM, and Milvus in just 10 minutes. Bypass busy servers and enhance AI responses with custom data.



