Setting the file. One moment.
Chapter 04 · Cloudflare Deploy
Subchapter 4.107
references/hyperdrive/README.mdMarkdown3 KBView on GitHub
Accelerates database queries from Workers via connection pooling, edge setup, query caching.
Worker → Edge (setup) → Pool (near DB) → Origin
↓ cached reads
Cache# Create config
npx wrangler hyperdrive create my-db \
--connection-string="postgres://user:pass@host:5432/db"
# wrangler.jsonc
{
"compatibility_flags": ["nodejs_compat"],
"hyperdrive": [{"binding": "HYPERDRIVE", "id": "<ID>"}]
}import { Client } from "pg";
export default {
async fetch(req: Request, env: Env): Promise<Response> {
const client = new Client({
connectionString: env.HYPERDRIVE.connectionString,
});
await client.connect();
const result = await client.query("SELECT * FROM users WHERE id = $1", [123]);
await client.end();
return Response.json(result.rows);
},
};✅ Global access to single-region DBs, high read ratios, popular queries, connection-heavy loads ❌ Write-heavy, real-time data (<1s), single-region apps close to DB
💡 Pair with Smart Placement for Workers making multiple queries - executes near DB to minimize latency.
| Driver | Use When | Notes |
|---|---|---|
| pg (recommended) | General use, TypeScript, ecosystem compatibility | Stable, widely used, works with most ORMs |
| postgres.js | Advanced features, template literals, streaming | Lighter than pg, prepare: true is default |
| mysql2 | MySQL/MariaDB/PlanetScale | MySQL only, less mature support |
| New to Hyperdrive | Implementing | Troubleshooting |
|---|---|---|
| 1. README (this) | 1. configuration.md | 1. gotchas.md |
| 2. configuration.md | 2. api.md | 2. patterns.md |
| 3. api.md | 3. patterns.md | 3. api.md |