Skip to main content
← All posts
作者:Sagasu

穷鬼套餐 第4章:数据为王 —— 免费数据库与对象存储

开篇:数据是应用的灵魂

在前三章中,我们已经拥有了域名、服务器和托管服务。但如果应用没有数据存储能力,就像一个失忆的人——每次刷新页面,一切都会重置。用户的注册信息、发表的内容、上传的图片……所有这些都需要持久化存储。

传统上,数据库和对象存储服务价格不菲。一个基础的云数据库实例每月可能要花费几十到上百美元,对象存储的流量费用更是让人肉疼。但在2025年,云服务商们的竞争已经白热化,免费套餐的慷慨程度让人惊叹。

本章将带你探索免费数据存储的世界——从传统的关系型数据库到现代化的NoSQL方案,从边缘数据库到对象存储服务。更重要的是,这些免费额度对个人项目和中小型应用来说,完全够用!

数据库服务全景图

现代数据库服务可以分为几大类:

数据库类型分类

1. 关系型数据库(SQL)

  • 代表产品 :Supabase (PostgreSQL)、Neon、PlanetScale (MySQL)
  • 适用场景 :需要复杂查询、事务处理、数据关系的应用
  • 核心特点 :ACID保证、强一致性、SQL标准查询

2. NoSQL数据库

  • 代表产品 :MongoDB Atlas、Cloudflare D1
  • 适用场景 :灵活数据结构、高并发读写、快速迭代
  • 核心特点 :文档存储、水平扩展、灵活Schema

3. 边缘数据库

  • 代表产品 :Turso (SQLite)、Cloudflare D1
  • 适用场景 :低延迟需求、全球分布式应用
  • 核心特点 :数据靠近用户、毫秒级响应

4. 缓存数据库

  • 代表产品 :Upstash Redis、Vercel KV
  • 适用场景 :会话存储、速率限制、缓存层
  • 核心特点 :内存存储、极快响应、键值对模型

免费PostgreSQL数据库:现代化的首选

PostgreSQL因其强大的功能和开源特性,成为现代Web应用的首选数据库。让我们看看三个最优秀的免费PostgreSQL服务。

1. Supabase —— 开源Firebase的完美替代

什么是Supabase?

Supabase不仅仅是一个数据库服务,它是一个完整的后端即服务(BaaS)平台,基于PostgreSQL构建,提供数据库、认证、存储、实时订阅等功能。

免费额度(永久)

  • 500MB数据库存储 :足够存储数万条记录
  • 500MB文件存储 :用于存储用户上传的图片、文件
  • 2GB带宽/月 :数据库查询和文件下载流量
  • 5万次月活跃用户 :认证功能的用户额度
  • 50万次Edge Function请求 :无服务器函数调用
  • 实时数据库连接 :200个并发连接
  • 无限API请求 :没有查询次数限制

核心功能

  1. PostgreSQL数据库
    • 完整的PostgreSQL 15功能
    • 行级安全策略(RLS)
    • 自动生成RESTful API
    • 实时数据订阅
  2. 认证系统
    • 邮箱/密码登录
    • 第三方OAuth(Google、GitHub等)
    • 魔法链接(Magic Link)
    • 手机号验证
  3. 存储服务
    • 类S3的对象存储
    • 图片自动优化
    • CDN分发
  4. 实时功能
    • 数据库变更订阅
    • 在线状态追踪
    • 广播消息

最佳使用场景

  • 全栈应用的一站式后端
  • 需要实时功能的应用(聊天、协作工具)
  • 需要用户认证的SaaS产品
  • 快速原型开发

实际案例

GitHub上有超过50,000个使用Supabase的开源项目。一个典型案例是开源项目管理工具"Linear-like",使用Supabase的实时功能实现了毫秒级的多人协作更新,用户反馈延迟低于100ms。citation

2. Neon —— Serverless PostgreSQL的先锋

核心特点

Neon是专为现代Serverless应用设计的PostgreSQL服务,采用存储与计算分离的架构。

免费额度(永久)

  • 512MB存储空间 :略大于Supabase
  • 无限活动时间 :不会因为不活跃而暂停
  • 3GB数据传输/月 :比Supabase更多
  • 100小时计算时间/月 :约3.3小时/天
  • 自动扩展 :根据负载自动调整

独特优势

  1. 分支功能 :像Git一样创建数据库分支
    • 为每个Pull Request创建独立数据库
    • 测试环境与生产环境完全隔离
    • 分支之间可以快速切换
  2. 即时激活 :数据库在几毫秒内从休眠状态唤醒
  3. 时间旅行 :可以查询历史数据状态

适用场景

  • Next.js、Remix等现代框架应用
  • 需要数据库分支的团队开发
  • Serverless架构应用
  • 需要快速扩缩容的项目

性能表现

根据社区基准测试,Neon的冷启动时间约50ms,热查询响应时间与标准PostgreSQL相当。citation

3. PlanetScale —— MySQL的Serverless变革

核心特点

PlanetScale基于Vitess(YouTube使用的数据库架构)构建,提供Serverless MySQL服务。

免费额度

  • 5GB存储空间 :最慷慨的免费存储
  • 10亿次读取/月 :几乎无限制
  • 1000万次写入/月 :足够大多数应用
  • 自动备份 :每12小时一次

独特功能

  1. 无锁Schema变更 :在不停机的情况下修改表结构
  2. 分支工作流 :类似Git的数据库版本控制
  3. 全球分布 :数据自动复制到多个地区
  4. 自动扩展 :根据负载自动调整资源

适用场景

  • 使用MySQL生态的项目
  • 需要频繁Schema变更的应用
  • 高并发读取场景
  • 需要全球部署的应用

注意事项

PlanetScale于2024年初调整了免费政策,新用户需要绑定信用卡才能使用免费套餐,但不会自动扣费。

三大PostgreSQL服务对比

功能SupabaseNeonPlanetScale
数据库类型PostgreSQLPostgreSQLMySQL
存储空间500MB512MB5GB
带宽2GB/月3GB/月无限制
特色功能认证+存储+实时分支+时间旅行无锁变更
计算限制2个CPU100小时/月无限制
最佳场景全栈一站式Serverless应用高并发读取
信用卡要求否否是

免费NoSQL数据库:灵活的文档存储

MongoDB Atlas —— 文档数据库之王

免费额度(永久)

  • 512MB存储空间 :可存储约10万条文档
  • 共享RAM :512MB RAM(与其他用户共享)
  • 无限连接数 :不限制并发连接
  • 自动备份 :虽然是共享实例,但数据有保障
  • 全球节点 :可选择香港、新加坡等亚太节点

核心优势

  1. 灵活的数据模型 :无需预定义Schema
  2. 强大的查询语言 :支持复杂的聚合查询
  3. 官方驱动支持 :几乎所有编程语言都有官方SDK
  4. Atlas Search :内置全文搜索功能

适用场景

  • 数据结构频繁变化的项目
  • 需要存储复杂嵌套结构的应用
  • 内容管理系统(CMS)
  • 快速原型开发

实际使用

MongoDB Atlas的免费套餐已运行多年,稳定性有保障。许多开源项目如Ghost博客系统默认推荐使用MongoDB Atlas。citation

Cloudflare D1 —— 边缘SQLite数据库

什么是D1?

D1是Cloudflare推出的全球分布式SQLite数据库,运行在Cloudflare的边缘网络上。

免费额度(永久)

  • 5GB存储空间 :非常慷慨
  • 每天500万次读取 :约每月1.5亿次
  • 每天10万次写入 :约每月300万次
  • 全球分布 :数据自动复制到全球节点

独特优势

  1. 超低延迟 :数据存储在离用户最近的节点
  2. 与Workers深度集成 :配合Workers使用性能最佳
  3. 零冷启动 :不存在数据库休眠问题
  4. 自动备份 :Cloudflare自动处理数据备份

适用场景

  • 与Cloudflare Workers配合使用
  • 需要极低延迟的全球应用
  • 边缘计算场景
  • 简单的数据存储需求

免费边缘数据库:Turso

Turso —— SQLite的Serverless革命

核心特点

Turso基于libSQL(SQLite的分支)构建,提供分布式SQLite服务。

免费额度(永久)

  • 9GB存储空间 :最慷慨的免费存储之一
  • 5亿次行读取/月 :远超其他服务
  • 三个数据库实例 :可创建多个数据库
  • 全球复制 :可选择多个部署区域

独特优势

  1. 嵌入式SQL :SQL查询在边缘直接执行
  2. 极快的读取速度 :本地缓存机制
  3. 兼容SQLite :可以使用熟悉的SQLite语法
  4. 低成本扩展 :超出免费额度后价格也很便宜

适用场景

  • 边缘计算应用
  • 需要SQLite简单性的项目
  • 读多写少的场景
  • 全球分布式应用

实际性能

社区测试显示,Turso的边缘查询延迟通常低于50ms,在读取密集型场景下表现优异。citation

免费缓存数据库:Redis服务

Upstash Redis —— Serverless Redis服务

免费额度(永久)

  • 10,000次命令/天 :约每月30万次
  • 256MB数据存储 :足够存储会话和缓存
  • 全球复制 :可选择多个区域部署
  • REST API :支持HTTP访问,无需TCP连接

核心功能

  1. Serverless架构 :按需付费,不用不收费
  2. REST API支持 :边缘函数也能轻松访问
  3. 持久化存储 :数据不会丢失
  4. 速率限制SDK :内置速率限制功能

适用场景

  • 会话存储
  • 速率限制
  • 缓存层
  • 实时排行榜

与Vercel KV对比

Vercel KV实际上基于Upstash构建,但Upstash直接注册可以获得更多免费额度。citation

免费对象存储:文件的安全港湾

对象存储用于保存图片、视频、文档等静态文件。让我们看看最好的免费选择。

1. Cloudflare R2 —— 零出口费用的革命

什么是R2?

Cloudflare R2是对标AWS S3的对象存储服务,最大特点是零出口费用——无论下载多少次,都不收取流量费。

免费额度(永久)

  • 10GB存储空间 :可存储约5000张高清图片
  • 每月100万次A类操作 :上传、列出操作
  • 每月1000万次B类操作 :下载、删除操作
  • 零出口费用 :无限制下载流量

这个免费额度意味着什么?假设你的网站有1万张图片,每张100KB,每天被访问1000次,使用R2完全免费!citation

核心优势

  1. S3兼容API :可以使用S3的所有工具和SDK
  2. 全球分发 :配合Cloudflare CDN性能极佳
  3. 零流量费 :这是最大的优势
  4. 自动备份 :Cloudflare处理数据冗余

适用场景

  • 网站图床
  • 静态资源托管(CSS、JS、字体文件)
  • 用户上传的文件存储
  • 备份和归档

性能表现

配合Cloudflare CDN使用,R2的全球平均访问延迟低于50ms,在中国大陆也有不错的访问速度。citation

2. Backblaze B2 —— 配合Cloudflare的最佳拍档

免费额度(永久)

  • 10GB存储空间 :与R2相同
  • 1GB下载流量/天 :约30GB/月
  • 2500次下载请求/天 :约75,000次/月
  • 2500次上传请求/天
  • 无限上传流量 :上传不计费

独特优势

Backblaze加入了Cloudflare带宽联盟,当通过Cloudflare访问B2数据时,流量完全免费!这意味着:

  • 存储在B2(成本低)
  • 通过Cloudflare分发(流量免费)
  • 享受全球CDN加速

配置方案

将B2作为源站,Cloudflare作为CDN,既省钱又快速。这是很多个人站长的首选方案。citation

3. 国内云厂商免费额度汇总

对于国内用户,国内云厂商的对象存储也值得考虑(需备案域名):

服务商存储空间流量特点
腾讯云COS50GB/月10GB/月6个月免费,国内访问快
网易云NOS50GB/月20GB/月最慷慨的国内选项
阿里云OSS40GB10GB/月6个月免费,新用户
七牛云10GB10GB/月永久免费
又拍云10GB15GB/月需申请又拍云联盟

注意:国内服务大多需要绑定已备案域名才能使用。citation

实战指南:从零开始配置

实战一:Supabase完整配置

步骤1:创建项目

  1. 访问 https://supabase.com 并注册账号
  2. 点击"New Project"创建项目
  3. 填写项目信息:
    • Name:项目名称
    • Database Password:设置强密码
    • Region:选择Singapore(距离中国最近)
  4. 等待2-3分钟,数据库初始化完成

步骤2:创建数据表

在SQL Editor中执行:

-- 创建用户表
create table profiles (
  id uuid references auth.users primary key,
  username text unique,
  avatar_url text,
  created_at timestamp with time zone default now()
);

-- 创建文章表
create table posts (
  id uuid default uuid_generate_v4() primary key,
  user_id uuid references profiles(id),
  title text not null,
  content text,
  created_at timestamp with time zone default now()
);

-- 启用行级安全
alter table profiles enable row level security;
alter table posts enable row level security;

-- 创建策略:用户可以读取所有资料
create policy "Public profiles are viewable by everyone"
  on profiles for select
  using (true);

-- 创建策略:用户可以更新自己的资料
create policy "Users can update own profile"
  on profiles for update
  using (auth.uid() = id);

步骤3:配置认证

  1. 在Dashboard中点击"Authentication" → "Providers"
  2. 启用Email provider(默认已启用)
  3. 可选:配置OAuth providers(GitHub、Google等)
  4. 在"Email Templates"中自定义邮件模板

步骤4:在应用中集成

安装依赖:

npm install @supabase/supabase-js

创建Supabase客户端:

import { createClient } from '@supabase/supabase-js'

const supabaseUrl = 'https://your-project.supabase.co'
const supabaseKey = 'your-anon-key'
const supabase = createClient(supabaseUrl, supabaseKey)

// 注册用户
async function signUp(email, password) {
  const { data, error } = await supabase.auth.signUp({
    email,
    password,
  })
  return { data, error }
}

// 查询数据
async function getPosts() {
  const { data, error } = await supabase
    .from('posts')
    .select('*, profiles(*)')
    .order('created_at', { ascending: false })
  
  return { data, error }
}

// 实时订阅
const subscription = supabase
  .channel('posts')
  .on('postgres_changes', 
    { event: '*', schema: 'public', table: 'posts' },
    (payload) => {
      console.log('数据变更:', payload)
    }
  )
  .subscribe()

实战二:Cloudflare R2搭建图床

步骤1:创建R2存储桶

  1. 登录Cloudflare Dashboard
  2. 点击"R2" → "Create bucket"
  3. 输入桶名称(建议使用UUID,防止被刷流量)
  4. 选择位置提示(可选亚太、欧洲、美洲)
  5. 点击"Create bucket"

步骤2:配置公开访问

  1. 在桶设置中,点击"Settings"
  2. 找到"Public access" → 点击"Allow Access"
  3. 会生成一个公开访问域名,如:pub-xxx.r2.dev

步骤3:绑定自定义域名

  1. 在R2桶设置中,点击"Custom Domains"
  2. 添加你的域名(如:img.yourdomain.com)
  3. Cloudflare会自动配置DNS记录
  4. 启用"小黄云"获得CDN加速

步骤4:配置缓存规则

在Cloudflare Dashboard中:

  1. 进入你的域名 → "Rules" → "Page Rules"
  2. 创建新规则:
    • URL:img.yourdomain.com/*
    • 设置:Cache Level = Cache Everything
    • 设置:Edge Cache TTL = 1 month
  3. 保存规则

步骤5:使用PicGo上传

安装PicGo和S3插件:

# 下载PicGo:https://github.com/Molunerfinn/PicGo/releases
# 安装picgo-plugin-s3插件

配置S3插件:

{
  "accessKeyID": "your-access-key",
  "secretAccessKey": "your-secret-key",
  "bucketName": "your-bucket-name",
  "uploadPath": "images/{year}/{month}/",
  "endpoint": "https://your-account-id.r2.cloudflarestorage.com",
  "urlPrefix": "https://img.yourdomain.com"
}

获取API密钥 :

  1. R2 Overview → "Manage R2 API Tokens"
  2. 创建新token → 选择"Admin Read & Write"
  3. 记录Access Key ID和Secret Access Key

现在就可以通过PicGo一键上传图片到R2了!

实战三:Backblaze B2配合Cloudflare

步骤1:注册Backblaze账号

  1. 访问 https://www.backblaze.com/b2/sign-up.html
  2. 填写邮箱、密码注册
  3. 验证邮箱

步骤2:创建存储桶

  1. 登录平台 → "创建一个桶"
  2. 桶名称:使用UUID(防刷流量)
  3. 文件访问:选择"公众"
  4. 创建完成后,记住Endpoint域名(如:f004.backblazeb2.com)

步骤3:配置Cloudflare DNS

  1. 在Cloudflare添加CNAME记录
  2. 名称:b2(或其他前缀)
  3. 目标:f004.backblazeb2.com
  4. 启用代理(橙色小云)

步骤4:修改SSL设置

在Cloudflare Dashboard:

  1. SSL/TLS → Overview
  2. 将加密模式改为"完全(严格)"
  3. 否则会出现522错误

步骤5:设置URL重写

在Cloudflare Rules → Transform Rules → Rewrite URL:

  1. 传入请求匹配:b2.yourdomain.com
  2. 路径重写到:concat("/file/your-bucket-name", http.request.uri.path)

这样访问 https://b2.yourdomain.com/image.jpg 时,实际会请求 f004.backblazeb2.com/file/your-bucket-name/image.jpg,但URL中不会暴露桶名!

步骤6:配置缓存

在B2桶设置中,添加桶信息:

{"cache-control":"max-age=720000"}

在Cloudflare Page Rules中创建规则:

  • URL:b2.yourdomain.com/*
  • Cache Level:Cache Everything
  • Edge Cache TTL:1 month

现在你就拥有了一个免费、快速、无限流量的图床服务!

数据库选择决策树

如何选择合适的数据库?

1. 如果你需要完整的后端解决方案(数据库+认证+存储)

→ 选择 Supabase

理由:一站式服务,功能最全,开箱即用

2. 如果你使用Next.js等Serverless框架

→ 选择 Neon 或 PlanetScale

理由:专为Serverless优化,冷启动快,自动扩缩容

3. 如果你需要灵活的文档存储

→ 选择 MongoDB Atlas

理由:Schema灵活,适合快速迭代的项目

4. 如果你需要全球低延迟访问

→ 选择 Turso 或 Cloudflare D1

理由:边缘分布,数据靠近用户,延迟极低

5. 如果你需要缓存和会话存储

→ 选择 Upstash Redis

理由:Serverless Redis,按需付费,REST API支持

6. 如果你需要简单的键值存储

→ 选择 Vercel KV 或 Cloudflare KV

理由:与平台深度集成,零配置

数据库免费额度对比

数据库存储空间特色功能最佳场景信用卡
Supabase500MB认证+存储+实时全栈应用否
Neon512MB分支+时间旅行Serverless否
PlanetScale5GB无锁变更+分支高并发是
MongoDB Atlas512MB文档存储灵活Schema否
Turso9GB边缘分布低延迟否
Upstash Redis256MBREST API缓存/会话否

对象存储选择建议

场景匹配指南

个人博客图床

→ Cloudflare R2 或 Backblaze B2 + Cloudflare

  • R2:零流量费,配置简单,10GB空间
  • B2+CF:存储成本低,通过CF流量免费,适合大量图片

国内访问为主的网站

→ 七牛云 或 腾讯云COS (需备案)

  • 七牛云:10GB永久免费,国内访问快
  • 腾讯云:50GB空间,新用户6个月免费

全球访问的应用

→ Cloudflare R2

  • 全球CDN加速
  • 零流量费
  • 自动HTTPS

文件下载站

→ Backblaze B2 + Cloudflare

  • B2存储成本低
  • 配合CF流量免费
  • 适合大文件分发

视频网站

→ Cloudflare Stream (有限免费)或 Bunny.net

  • 专门为视频优化
  • 自动转码和自适应流
  • 全球CDN分发

对象存储服务对比

服务存储流量特点适用场景
Cloudflare R210GB无限制零出口费用通用图床
Backblaze B210GB1GB/天配合CF免费大量存储
七牛云10GB10GB/月国内快国内网站
腾讯云COS50GB10GB/月新用户6个月临时项目
又拍云10GB15GB/月需申请联盟国内加速

组合使用方案推荐

最佳实践往往是将多个服务组合使用,发挥各自优势:

组合1:全能Cloudflare生态

技术栈 :

  • 前端:Cloudflare Pages
  • API:Cloudflare Workers
  • 数据库:Cloudflare D1
  • 对象存储:Cloudflare R2
  • 缓存:Cloudflare KV

优势 :

  • 所有服务在同一平台,管理方便
  • 服务之间延迟极低(在同一数据中心)
  • 全球边缘分布,性能极佳
  • 免费额度组合起来非常慷慨

适用场景 :全球化的边缘应用、低延迟需求

组合2:Vercel + Supabase全栈方案

技术栈 :

  • 前端:Vercel
  • 数据库:Supabase (PostgreSQL)
  • 认证:Supabase Auth
  • 文件存储:Supabase Storage
  • 实时功能:Supabase Realtime

优势 :

  • Next.js在Vercel上性能最佳
  • Supabase提供完整后端功能
  • 开发体验极佳,文档完善
  • 两个服务都有活跃的社区

适用场景 :快速开发MVP、全栈SaaS应用

组合3:多云组合方案

技术栈 :

  • 前端:Vercel
  • 数据库:Neon (PostgreSQL)
  • 缓存:Upstash Redis
  • 对象存储:Cloudflare R2
  • 队列:Upstash QStash

优势 :

  • 选择每个领域的最佳服务
  • 避免单一平台依赖
  • 灵活性最高

适用场景 :复杂应用、需要最佳性能

组合4:国内优化方案

技术栈 :

  • 前端:Vercel (海外) + Cloudflare (国内加速)
  • 数据库:MongoDB Atlas (新加坡节点)
  • 对象存储:七牛云 (国内) + R2 (海外)
  • CDN:Cloudflare

优势 :

  • 国内外访问都有优化
  • 数据存储在境外(无需备案)
  • CDN加速国内访问

适用场景 :面向国内外用户的应用

性能优化最佳实践

数据库优化

1. 索引优化

-- 为经常查询的字段创建索引
CREATE INDEX idx_posts_user_id ON posts(user_id);
CREATE INDEX idx_posts_created_at ON posts(created_at DESC);

-- 复合索引
CREATE INDEX idx_posts_user_date ON posts(user_id, created_at DESC);

2. 连接池配置

// 使用连接池,避免频繁创建连接
import { Pool } from 'pg'

const pool = new Pool({
  connectionString: process.env.DATABASE_URL,
  max: 20, // 最大连接数
  idleTimeoutMillis: 30000,
  connectionTimeoutMillis: 2000,
})

3. 查询优化

// ❌ 避免:N+1查询问题
const posts = await getPosts()
for (const post of posts) {
  const user = await getUser(post.user_id) // 多次查询
}

// ✅ 推荐:使用JOIN一次查询
const posts = await supabase
  .from('posts')
  .select('*, profiles(*)')

对象存储优化

1. 图片优化

// 使用Supabase自动图片优化
const imageUrl = supabase.storage
  .from('avatars')
  .getPublicUrl('avatar.jpg', {
    transform: {
      width: 200,
      height: 200,
      resize: 'cover',
      format: 'webp', // 自动转换为WebP
      quality: 80
    }
  })

2. CDN缓存配置

在Cloudflare中设置缓存规则:

Cache-Control: public, max-age=31536000, immutable

3. 智能压缩

// 上传前压缩图片
import imageCompression from 'browser-image-compression';

const options = {
  maxSizeMB: 1,
  maxWidthOrHeight: 1920,
  useWebWorker: true
}

const compressedFile = await imageCompression(file, options)

常见问题解答

Q:免费数据库的数据会丢失吗?

A:不会。我们推荐的服务都是正规商业服务,数据有多重备份保障:

  • Supabase、Neon等使用AWS底层存储,数据冗余存储
  • 免费套餐和付费套餐的数据安全级别相同
  • 建议定期导出重要数据作为额外备份

Q:免费额度用完了怎么办?

A:不同服务处理方式不同:

  • Supabase/Neon :数据库暂停,不会删除数据,升级套餐即可恢复
  • Cloudflare R2 :超出免费额度开始按量计费(但费用很低)
  • MongoDB Atlas :可以清理旧数据,或升级到付费套餐
  • 建议:监控使用量,接近限制时提前处理

Q:这些数据库可以用于生产环境吗?

A:可以,但要看流量规模:

  • 小型项目 (日活<1000):完全够用,很多成功案例
  • 中型项目 (日活1000-10000):需要监控指标,必要时升级
  • 大型项目 :建议直接使用付费套餐,获得更好的性能和支持

Q:Supabase和Firebase哪个更好?

A:各有优势:

  • Supabase 优势:开源、基于PostgreSQL、更灵活、可自部署
  • Firebase 优势:Google背书、与Google服务集成、移动端SDK更成熟
  • 个人推荐Supabase,因为不会被平台锁定

Q:对象存储的图片会被压缩吗?

A:取决于具体服务:

  • Cloudflare R2 :不会自动压缩,存储原图
  • Supabase Storage :支持on-the-fly转换(通过URL参数)
  • 七牛云 :有图片处理功能,可实时转换格式和尺寸
  • 建议:上传前在客户端压缩,节省存储和流量

Q:国内访问Cloudflare服务慢怎么办?

A:优化方案:

  • 使用Cloudflare的"Argo Smart Routing"(付费功能)
  • 配置Page Rules优化缓存策略
  • 对于数据库,选择新加坡或香港节点
  • 静态资源使用国内CDN,动态数据使用Cloudflare

本章小结

通过本章学习,你应该已经:

  • ✅ 了解了现代数据库服务的分类和特点
  • ✅ 掌握了Supabase、Neon、PlanetScale等主流免费数据库
  • ✅ 理解了对象存储的概念和使用场景
  • ✅ 学会了配置Cloudflare R2和Backblaze B2
  • ✅ 知道如何根据项目需求选择合适的数据存储方案
  • ✅ 掌握了数据库和对象存储的性能优化技巧

现在,你的"穷鬼套餐"技术栈已经非常完整了:

  1. 域名 :EU.org免费域名
  2. DNS :Cloudflare免费DNS
  3. 托管 :Vercel/Cloudflare Pages免费托管
  4. 数据库 :Supabase/Neon免费PostgreSQL
  5. 存储 :Cloudflare R2免费对象存储

这套组合可以支撑起一个功能完整的Web应用,而成本几乎为零!

在下一章,我们将探讨更多实用的免费服务——从邮件发送到监控告警,从分析统计到自动化工具,让你的应用功能更加完善。

如果这一章对你有帮助

恭喜你!完成这一章后,你已经掌握了搭建完整数据存储方案的能力。从关系型数据库到文档数据库,从边缘存储到对象存储,这些免费资源足以支撑你的创业想法和个人项目。

如果这一章帮助你成功配置了数据库或对象存储,或者让你对数据存储有了更深的理解,请不要吝啬你的点赞、分享和关注 !

欢迎在推特上关注我:@sujingshen

我会持续分享:

  • 更多免费云服务的深度评测
  • 实战项目的技术选型经验
  • 性能优化的实用技巧
  • "穷鬼套餐"系列的最新进展

也欢迎在评论区分享:

  • 你使用的是哪个数据库服务?
  • 遇到了什么有趣的问题?
  • 有没有发现其他好用的免费存储服务?
  • 你的项目用了什么技术栈?

让我们一起探索,用免费资源创造无限可能!🚀

下一章见,我们将继续扩展你的免费工具箱!