Guide, 8 min read, updated 30 September 2026

SQLite, PostgreSQL, DuckDB, Snowflake or BigQuery? Choosing the right database

A clear way to decide, based on what your data is for rather than what is fashionable.

DatabasesSnowflakeSQL
All guides and cheat sheets

"Which database should we use?" is one of the most common questions I am asked, and the honest answer is: it depends on what the data is for. The first distinction to make is between transactional and analytical workloads.

Transactional versus analytical

Transactional (OLTP)Analytical (OLAP)
Typical workMany small reads and writes: place an order, update a stock levelFew large reads: total revenue by month for three years
Storage layoutRow by rowColumn by column
ExamplesPostgreSQL, MySQL, SQLiteSnowflake, BigQuery, DuckDB
ServesApplicationsReports, dashboards, data science

Columnar analytical databases are dramatically faster for aggregations because they only read the columns a query needs, and compress similar values together.

The contenders

SQLite

A complete database in a single file, with no server to run. It powers countless mobile and desktop apps, including most iPhone apps under the hood. Ideal for local tools, prototypes and embedded use; not designed for many simultaneous writers.

PostgreSQL

The dependable, open-source default for applications. Rich SQL, strong consistency, JSON support and an enormous extension ecosystem. It can handle moderate analytics too, and it is increasingly offered by the major data platforms as a companion to their warehouses.

DuckDB

Often described as "SQLite for analytics": an in-process, columnar database that runs inside Python, R or the command line and queries CSV and Parquet files directly. Excellent for data science, local development and datasets up to hundreds of gigabytes on a laptop.

Python
import duckdb

# Query a folder of Parquet files directly, with no loading step
duckdb.sql("""
    SELECT product, SUM(amount) AS revenue
    FROM 'sales/*.parquet'
    GROUP BY product
    ORDER BY revenue DESC
    LIMIT 10
""").show()

Snowflake

A managed cloud data platform with storage and compute separated, strong governance, data sharing and near-zero administration. A strong fit when several teams need a single, secure source of truth. Read the Snowflake guide for the essentials.

BigQuery

Google's serverless warehouse: no clusters to size, and you can pay per amount of data scanned. It integrates tightly with Google Analytics exports and the rest of Google Cloud.

How to choose

If you need to...Start with
Store data for an app or websitePostgreSQL (or SQLite for a small, local app)
Analyse files on your own machine quicklyDuckDB
Build a shared source of truth for a companySnowflake or BigQuery
Report on Google Analytics or Google Ads dataBigQuery
Keep costs near zero for a small businessDuckDB, PostgreSQL, or well-structured spreadsheets feeding Power BI

Questions to ask before deciding

Many teams use more than one: PostgreSQL behind the application, a warehouse for reporting, and DuckDB on analysts' laptops. The skill is in moving data cleanly between them, which is exactly what analytics engineering is about.

Written by Alessandro Ecclesie Agazzi, freelance analytics engineer in London. Updated 30 September 2026.