Skip to content
Sandeep Kumar ChaudharySandeep
Back to BlogDatabases

Getting Started with pgvector for Your First AI Feature

By Sandeep Kumar ChaudharyJul 21, 20266 min read
Getting Started with pgvector for Your First AI Feature — Databases guide by Sandeep Kumar Chaudhary, full stack developer

TL;DR

Here is a clear, practical guide to getting started: the fundamentals, the best practices that actually move the needle, common mistakes to avoid, concrete data points, and a short FAQ. Everything is structured so you can apply it to real projects today.

Key takeaways

  • You often do not need a dedicated vector database: pgvector or an equivalent extension inside your existing Postgres keeps embeddings next to your relational data and one system to operate.
  • Reach for distributed SQL (CockroachDB, Spanner, Yugabyte) only when you genuinely need horizontal write scale or multi-region survivability, because it costs latency and operational complexity a single Postgres node avoids.
  • For metrics, events, and IoT telemetry, a time-series engine like TimescaleDB or InfluxDB beats a general-purpose table because it exploits time-ordered, append-heavy, rarely-updated data.
  • If you love MySQL and just need to shard it, Vitess (and its managed form PlanetScale) lets you scale horizontally without abandoning the MySQL protocol.
  • Model your data as a graph in Neo4j when the relationships are the query — multi-hop traversals and pathfinding are where index-free adjacency crushes recursive SQL joins.

This is a practical, up-to-date guide to Getting Started — what it is, why it matters in 2026, and how to apply it in real projects. It is written for developers and founders who want clear answers and proven best practices, not filler.

Whether you're just starting out or leveling up, treat this as a working reference you can return to. Every section is built to be skimmed, applied, and shared.

Vitess and PlanetScale: horizontally scaling MySQL

Vitess takes a different route to scale than the Spanner lineage: rather than inventing a new engine, it shards ordinary MySQL and puts a smart proxy layer in front of the shards. Originally built at YouTube to survive its growth, Vitess handles resharding, connection pooling, query routing, and online schema changes while keeping the MySQL wire protocol so applications barely notice. PlanetScale packaged Vitess into a managed developer product, adding non-blocking schema changes through deploy requests and a branching workflow. The trade is that Vitess is eventually a sharded system, so cross-shard transactions and joins require care, but for teams committed to MySQL it offers a proven path to very high throughput.

Operational and consistency trade-offs to expect

Every category buys its headline benefit with a cost you should anticipate. Distributed SQL pays for its resilience with higher write latency from cross-node consensus and with genuinely harder operations, since clock skew, range hotspots, and cross-region round trips all become real concerns. Sharded systems like Vitess make cross-shard joins and distributed transactions the expensive path, so schema and query design must respect shard boundaries. Serverless and edge models introduce cold starts and, in the edge case, an asymmetry where local reads are fast but writes travel to a primary. And vector search is inherently approximate, so tuning index parameters trades recall against latency and memory — there is no free lunch, only a lunch matched to your access pattern.

What do we mean by next-gen databases?

The phrase covers a wave of database systems that broke from the single-node relational assumptions of the 1990s to serve cloud-scale, global, real-time, and AI workloads. It spans NewSQL and distributed SQL systems that keep ACID transactions while scaling out, specialized engines for time-series and graph data, serverless and edge platforms that rethink the operational model, embedded analytical engines like DuckDB, and vector-native stores built for similarity search. What unites them is a rejection of the idea that one general-purpose relational server on one machine is the right default for every problem. Instead, each category makes a deliberate trade — consistency for scale, generality for query speed, or operational simplicity for cost — tuned to a particular access pattern.

Embedded analytics: DuckDB and the in-process model

Embedded databases run inside your application process with no separate server to manage, and SQLite is the canonical example for transactional workloads, shipping in phones, browsers, and countless apps. DuckDB brought this in-process philosophy to analytics: it is a columnar, vectorized OLAP engine you can pip install, query with full SQL, and point directly at Parquet, CSV, or Arrow files without a loading step. Because there is no network hop and no cluster to provision, DuckDB has become a favorite for local data science, ETL, and increasingly as an embeddable query engine inside larger products and even the browser via WebAssembly. It complements rather than replaces warehouses: DuckDB is for interactive, single-node analysis of gigabytes to a few terabytes, where its speed and zero-setup convenience are hard to beat.

Choosing between these categories

The right choice follows the shape of your data and your failure and scale requirements, not fashion. If you need multi-region survivability or write throughput beyond one machine, distributed SQL earns its complexity; if you love MySQL and only need to shard, Vitess or PlanetScale is the lower-friction path. Time-ordered append-heavy data belongs in a time-series engine, relationship-centric queries belong in a graph, and embeddings for semantic search belong in a vector index — often pgvector inside the database you already run. For bursty or per-tenant workloads, serverless Postgres like Neon fits; for read-heavy global apps, edge replicas via Turso shine; and for local analytics, reach for DuckDB. A pragmatic default remains a single well-tuned Postgres, since its extension ecosystem now covers time-series, geospatial, and vector needs before you ever need a specialized system.

Graph databases and the rise of GQL

Graph databases store entities as nodes and relationships as first-class edges, which makes traversing connections cheap through a technique called index-free adjacency where each node directly references its neighbors. Neo4j is the category leader and popularized the Cypher query language, whose ASCII-art pattern syntax reads like drawing the shape of the data you want. Graphs excel where relationships are the question — fraud rings, recommendation networks, identity resolution, knowledge graphs, and supply-chain dependencies — because multi-hop traversals that would be painful recursive joins in SQL become natural. A milestone landed in 2024 when ISO published GQL, the first standardized graph query language and the first brand-new ISO database language since SQL itself, giving the fragmented graph world a common target.

Getting Started: Key Facts and Data

According to recent industry research and the official documentation linked below:

  • Serverless database platforms such as Neon and PlanetScale popularized scale-to-zero compute and database branching, and Neon was acquired by Databricks in 2025, signaling that separated storage-and-compute Postgres had become strategically important.
  • Google Spanner, first described in a 2012 OSDI paper, is widely credited with proving that a globally distributed database can offer both horizontal scale and strict external consistency, using TrueTime clock uncertainty bounds derived from GPS and atomic clocks.
  • PlanetScale is built on Vitess, the same open-source sharding layer that YouTube created to scale MySQL, and Vitess has long been reported to serve extremely high query volumes at hyperscale companies.

Quick-Reference Summary

A map of what this guide covers:

TopicWhat you'll learn
Vitess and PlanetScale: horizontally scaling MySQLVitess takes a different route to scale than the Spanner lineage
Operational and consistency trade-offs to expectEvery category buys its headline benefit with a cost you should anticipate.
What do we mean by next-gen databases?The phrase covers a wave of database systems that broke from the single-node relational assumptions of the 1990s to serve cloud-scale
Embedded analytics: DuckDB and the in-process modelEmbedded databases run inside your application process with no separate server to manage
Choosing between these categoriesThe right choice follows the shape of your data and your failure and scale requirements, not fashion.
Graph databases and the rise of GQLGraph databases store entities as nodes and relationships as first-class edges

How to Get Started with Getting Started

A simple path that works:

  1. Learn the fundamentals of Getting Started from primary sources, not just tutorials.
  2. Build one small, real project end to end.
  3. Get feedback, refactor, and add tests.
  4. Ship it publicly and document what you learned.
  5. Repeat with a slightly harder project each time.

Build It with a World-Class Full Stack Developer

Sandeep Kumar Chaudhary is a full stack world-class developer. If you want to turn this into a real, production-ready product, get in touch — message directly on WhatsApp at +9779802348957 for a fast, no-pressure consult.

You can also explore the projects already shipped to thousands of users, or start a conversation here.

Final Thoughts

You often do not need a dedicated vector database: pgvector or an equivalent extension inside your existing Postgres keeps embeddings next to your relational data and one system to operate. The developers and teams who win in 2026 pair strong fundamentals with consistent shipping. Start small, stay curious, build in public, and revisit this guide as your skills grow.

Sources and Further Reading

#next-gen databases#distributed sql#newsql#cockroachdb

Frequently Asked Questions

What is getting started?

Every category buys its headline benefit with a cost you should anticipate. Distributed SQL pays for its resilience with higher write latency from cross-node consensus and with genuinely harder operations, since clock skew, range hotspots, and cross-region round trips all become real concerns. This guide covers getting started end to end — core concepts, best practices, concrete data, and a step-by-step approach you can apply right away.

Is DuckDB a replacement for a data warehouse?

Not exactly; DuckDB is an in-process analytical engine best suited for fast, interactive analysis of data that fits on a single machine, from gigabytes up to a few terabytes. It excels at querying Parquet, CSV, and Arrow files directly with full SQL and zero setup, which makes it great for local data science, ETL, and embedding inside applications. For petabyte-scale, highly concurrent, always-on analytics across a team you still want a warehouse like BigQuery, Snowflake, or a distributed engine, and DuckDB often complements those rather than replacing them.

Do I need a dedicated vector database or is pgvector enough?

For many applications pgvector is enough, because it lets you store embeddings and run approximate nearest neighbor search inside the same Postgres that already holds your relational data, so you operate one system and can filter by metadata in plain SQL. Dedicated engines like Pinecone, Weaviate, Milvus, or Qdrant become worthwhile at very large scale, with billions of vectors, demanding latency targets, or advanced indexing and filtering needs. A good rule is to start with pgvector and move to a specialized store only when you hit a concrete limit.

What is database branching and why does it matter?

Database branching lets you create an instant, isolated copy of a database — schema and data — much like a Git branch of code, using copy-on-write storage so the fork is fast and cheap. Neon and PlanetScale popularized it, and it matters most for development workflows: you can spin up a full production-like database for each pull request or preview environment, run migrations against it safely, then throw it away. It removes the old pain of sharing one staging database or manually seeding test data.

How does Turso make SQLite work as a distributed database?

Turso is built on libSQL, an open fork of SQLite, and uses a feature called embedded replicas. A full local SQLite copy lives inside your application or edge node so reads are served from local disk at microsecond latency, while writes are sent to a primary and the changes are streamed back to keep replicas current. This turns SQLite into a globally distributed, read-heavy-friendly system, with the trade-off that writes still funnel through a single primary.

Sandeep Kumar Chaudhary

Sandeep Kumar Chaudhary

Full Stack Software Developer· Nepal's SEO, AEO, GEO & AIO expert and share-market educator. More about me