Skip to content
RU

Database driver popularity in 2026: a measurement across two registries

TL;DR. We queried driver download counters directly from npm and PyPI.

We queried driver download counters directly from npm and PyPI. PostgreSQL is first in both ecosystems — 64.6 million a week in JavaScript and 530.4 million a month in Python, ahead of the next by a factor of one and a half to two.

Below that the ordering diverges: MongoDB outranks MySQL in JavaScript and trails it in Python. And inside the databases themselves a generational shift is under way — with one stuck: psycopg2 is still twice as popular as version three.

Check your site's headers →

PostgreSQL leads in both ecosystems

On 27 August 2026 we queried driver download counters directly from the registries. JavaScript, per week:

DatabaseDownloadsComposition
PostgreSQL64,567,994pg 48.6M, postgres 16.0M
Redis40,696,810ioredis 27.4M, redis 13.3M
MongoDB22,118,793mongodb 15.4M, mongoose 6.7M
MySQL and MariaDB16,844,846mysql2 15.5M, mysql 1.3M
SQLite12,945,236better-sqlite3 10.3M, sqlite3 2.6M
SQL Server3,529,142mssql
ClickHouse3,402,590@clickhouse/client
Oracle937,890oracledb
Cassandra369,497cassandra-driver

Python, per month:

DatabaseDownloadsComposition
PostgreSQL530,434,095psycopg2-binary 269.6M, psycopg 138.1M, asyncpg 122.8M
Redis267,340,409redis
MySQL and MariaDB144,505,894pymysql 98.7M, mysql-connector 45.8M
MongoDB117,726,478pymongo 106.9M, motor 10.8M
SQL Server93,438,525pymssql 52.6M, pyodbc 40.8M
ClickHouse52,277,185clickhouse-connect 32.2M, clickhouse-driver 20.1M
Oracle29,159,755oracledb 26.0M, cx-oracle 3.1M

PostgreSQL is first in both ecosystems by a wide margin — roughly one and a half to two times its nearest pursuer.

The ordering does not match entirely, and the difference is meaningful

The top two positions are identical; beyond them the languages diverge:

RankJavaScriptPython
1PostgreSQLPostgreSQL
2RedisRedis
3MongoDBMySQL
4MySQLMongoDB
5SQLiteSQL Server

MongoDB outranks MySQL in JavaScript and trails it in Python. That fits the history: MongoDB grew alongside Node.js and stores data in the shape the language holds it in, while the Python world carries a stronger relational tradition.

A second difference: SQL Server ranks fifth in Python and only sixth in JavaScript, at a share twenty-six times smaller relative to the leader. Enterprise integration is more often written in Python.

And a third: SQLite is absent from the Python list entirely, because there it is part of the standard library and needs no separate package. Its absence is not unpopularity but the consequence of there being nothing to download.

Inside each database a generational shift is under way

The most interesting movement is not between databases but within them:

TransitionNewOldRatio
MySQL in JS: mysql2 vs mysql15.5M1.3M12:1
Oracle in Python: oracledb vs cx-oracle26.0M3.1M8:1
SQLite in JS: better-sqlite3 vs sqlite310.3M2.6M4:1
Redis in JS: ioredis vs the official client27.4M13.3M2:1
PostgreSQL in Python: psycopg2 vs psycopg 3138.1M269.6M1:2 — the old one leads

Four of the five transitions are complete or nearly so. The exception is psycopg: version three shipped years ago, yet version two remains twice as popular. The reason is that it ships as a prebuilt binary requiring no compilation — a habit abandoned slowly.

Redis in JavaScript is separately curious: the unofficial client is twice as popular as the official one. That is rare, and usually means the alternative arrived first and became the habit.

Abstraction layers: in Python the abstraction outweighs any driver

JavaScript, per weekPython, per month
drizzle-orm19,997,086sqlalchemy425,913,205
prisma16,762,732django53,751,257
@prisma/client15,704,034peewee51,645,041
knex5,289,407tortoise-orm574,455
typeorm4,983,124
sequelize2,842,247

Two observations. First: in JavaScript drizzle-orm has overtaken prisma — 20.0M against 16.8M. For a tool that arrived considerably later, that is a sharp reordering.

Second, and weightier: SQLAlchemy at 425.9M downloads is comparable to every PostgreSQL driver combined (530.4M). In the Python world database work overwhelmingly goes through an abstraction rather than a driver directly. JavaScript shows no such dominance: all its layers together total less than PostgreSQL alone.

What these numbers do not say

Downloads are not users and not production installations. The bulk comes from build pipelines re-pulling the same thing on every run. A package fetched in every build of a microservice project will outrank one installed once on a server.

The JavaScript and Python figures cannot be compared directly — a week against a month, different ecosystem sizes and different build-caching habits.

A driver is not a database. An application may reach PostgreSQL through a layer that pulls the driver as a dependency, in which case both are counted. Conversely a database may run without a single driver download if access goes over HTTP.

Absence from the list means nothing. SQLite in Python is part of the standard library; embedded and cloud databases have no separate package at all.

What these numbers do show is relative movement within one ecosystem: driver generational shifts and changes between abstraction layers. For that they serve well, because the method’s bias applies equally to everything being compared.

To check what your database answers and how fast, use the port checker.

Sources: the npm download counter, PyPI statistics.

Learn more

Frequently Asked Questions

Postgres vs MySQL — which in 2026?

Postgres — default for new project (better features, JSON, partial indexes, better defaults). MySQL — if legacy team expertise or simple CRUD.

Is MongoDB still relevant?

For multi-tenant apps with fluid schemas (chat, IoT, analytics). For relational data — Postgres with JSONB is superior.

Serverless Postgres (Neon) — production-ready?

Yes. Neon, Supabase, Vercel Postgres used in production. Main risks — cold start + pricing surprise on spikes.

How to detect a site's DB?

Impossible 100% externally. Indirectly: error messages, response time patterns, admin panel paths. Enterno — API response timing + type of 500 errors.

Try the live tool that powered this guide

Free plan — 10 monitors, checks every 5 min, no card required. Upgrade for 1-minute interval and multi-region monitoring.