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.
Free online tool — HTTP header checker: instant results, no signup.
On 27 August 2026 we queried driver download counters directly from the registries. JavaScript, per week:
| Database | Downloads | Composition |
|---|---|---|
| PostgreSQL | 64,567,994 | pg 48.6M, postgres 16.0M |
| Redis | 40,696,810 | ioredis 27.4M, redis 13.3M |
| MongoDB | 22,118,793 | mongodb 15.4M, mongoose 6.7M |
| MySQL and MariaDB | 16,844,846 | mysql2 15.5M, mysql 1.3M |
| SQLite | 12,945,236 | better-sqlite3 10.3M, sqlite3 2.6M |
| SQL Server | 3,529,142 | mssql |
| ClickHouse | 3,402,590 | @clickhouse/client |
| Oracle | 937,890 | oracledb |
| Cassandra | 369,497 | cassandra-driver |
Python, per month:
| Database | Downloads | Composition |
|---|---|---|
| PostgreSQL | 530,434,095 | psycopg2-binary 269.6M, psycopg 138.1M, asyncpg 122.8M |
| Redis | 267,340,409 | redis |
| MySQL and MariaDB | 144,505,894 | pymysql 98.7M, mysql-connector 45.8M |
| MongoDB | 117,726,478 | pymongo 106.9M, motor 10.8M |
| SQL Server | 93,438,525 | pymssql 52.6M, pyodbc 40.8M |
| ClickHouse | 52,277,185 | clickhouse-connect 32.2M, clickhouse-driver 20.1M |
| Oracle | 29,159,755 | oracledb 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 top two positions are identical; beyond them the languages diverge:
| Rank | JavaScript | Python |
|---|---|---|
| 1 | PostgreSQL | PostgreSQL |
| 2 | Redis | Redis |
| 3 | MongoDB | MySQL |
| 4 | MySQL | MongoDB |
| 5 | SQLite | SQL 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.
The most interesting movement is not between databases but within them:
| Transition | New | Old | Ratio |
|---|---|---|---|
| MySQL in JS: mysql2 vs mysql | 15.5M | 1.3M | 12:1 |
| Oracle in Python: oracledb vs cx-oracle | 26.0M | 3.1M | 8:1 |
| SQLite in JS: better-sqlite3 vs sqlite3 | 10.3M | 2.6M | 4:1 |
| Redis in JS: ioredis vs the official client | 27.4M | 13.3M | 2:1 |
| PostgreSQL in Python: psycopg2 vs psycopg 3 | 138.1M | 269.6M | 1: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.
| JavaScript, per week | Python, per month | ||
|---|---|---|---|
| drizzle-orm | 19,997,086 | sqlalchemy | 425,913,205 |
| prisma | 16,762,732 | django | 53,751,257 |
| @prisma/client | 15,704,034 | peewee | 51,645,041 |
| knex | 5,289,407 | tortoise-orm | 574,455 |
| typeorm | 4,983,124 | ||
| sequelize | 2,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.
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.
Postgres — default for new project (better features, JSON, partial indexes, better defaults). MySQL — if legacy team expertise or simple CRUD.
For multi-tenant apps with fluid schemas (chat, IoT, analytics). For relational data — Postgres with JSONB is superior.
Yes. Neon, Supabase, Vercel Postgres used in production. Main risks — cold start + pricing surprise on spikes.
Impossible 100% externally. Indirectly: error messages, response time patterns, admin panel paths. Enterno — API response timing + type of 500 errors.
Free plan — 10 monitors, checks every 5 min, no card required. Upgrade for 1-minute interval and multi-region monitoring.