01-数据库基础概念¶
数据库世界的入门指南 目标:建立数据库的整体认知,理解核心概念
📋 本章概览¶
预计学习时间:2-3小时 前置章节:无(本章为入门) 实践要求:阅读完本章后,能回答文末的自测问题
本章内容: 1. 什么是数据库? 2. 关系型 vs 非关系型数据库 3. 数据库核心概念 4. 常见数据库类型 5. 数据库在AI项目中的作用
1. 什么是数据库?¶
1.1 从一个例子开始¶
想象你在做一个图像分类项目:
# ❌ 没有数据库的做法
# 把所有图片路径和标签存在Python列表里
images = [
{"path": "/data/cat_001.jpg", "label": "cat", "size": 1024},
{"path": "/data/dog_001.jpg", "label": "dog", "size": 2048},
# ... 100万个条目
]
# 问题1:程序关闭后数据丢失
# 问题2:查找特定标签的图片要遍历整个列表 - 慢!
# 问题3:多个程序无法同时访问
# 问题4:数据量大了内存装不下
# ✅ 使用数据库的做法
import sqlite3
# 连接数据库(数据持久化存储)
conn = sqlite3.connect('image_dataset.db')
# 查询特定标签的图片(毫秒级响应)
cursor = conn.execute(
"SELECT path FROM images WHERE label = 'cat' LIMIT 1000"
)
results = cursor.fetchall()
# 优势:
# 1. 数据持久化 - 程序关闭后数据还在
# 2. 高效查询 - 索引让查询速度提升1000倍
# 3. 并发访问 - 多个程序可以同时读写
# 4. 大数据量 - 支持TB级数据存储
1.2 数据库的定义¶
数据库(Database) 是按照数据结构来组织、存储和管理数据的仓库。
数据库管理系统(DBMS) 是管理数据库的软件,提供: - 数据定义:创建、修改、删除数据结构 - 数据操作:增删改查(CRUD) - 数据控制:权限管理、并发控制、备份恢复
1.3 为什么需要数据库?¶
| 需求 | 文件存储 | 数据库 |
|---|---|---|
| 数据持久化 | ✅ 可以 | ✅ 可以 |
| 高效查询 | ❌ 遍历文件 | ✅ 索引优化 |
| 大数据量 | ❌ 性能下降 | ✅ TB级支持 |
| 并发访问 | ❌ 文件锁冲突 | ✅ 事务管理 |
| 数据一致性 | ❌ 容易出错 | ✅ ACID保证 |
| 权限控制 | ❌ 系统级 | ✅ 细粒度控制 |
AI场景中的数据库价值:
# 场景1:训练数据管理
# 百万级训练样本,需要按标签、批次、质量筛选
db.query("SELECT * FROM training_data WHERE label='positive' AND quality_score > 0.8")
# 场景2:实验追踪
# 记录每次实验的超参数、指标、模型文件路径
db.execute("""
INSERT INTO experiments
(model_name, lr, batch_size, accuracy, model_path)
VALUES ('ResNet50', 0.001, 32, 0.95, '/models/exp_001.pth')
""")
# 场景3:模型服务
# 缓存预测结果,避免重复计算
cached_result = db.query("SELECT result FROM predictions WHERE input_hash = ?", (hash,))
2. 关系型 vs 非关系型数据库¶
2.1 关系型数据库(RDBMS)¶
核心思想:数据以表(Table)的形式组织,表与表之间通过关系连接。
代表产品:MySQL、PostgreSQL、Oracle、SQL Server、SQLite
┌─────────────────────────────────────────────────────────────┐
│ 用户表 (users) │
├──────────┬──────────┬──────────┬──────────┬─────────────────┤
│ id (PK) │ name │ email │ age │ created_at │
├──────────┼──────────┼──────────┼──────────┼─────────────────┤
│ 1 │ 张三 │ z@email │ 25 │ 2024-01-01 │
│ 2 │ 李四 │ l@email │ 30 │ 2024-01-02 │
└──────────┴──────────┴──────────┴──────────┴─────────────────┘
│
│ 一对多关系
▼
┌─────────────────────────────────────────────────────────────┐
│ 订单表 (orders) │
├──────────┬──────────┬──────────┬──────────┬─────────────────┤
│ id (PK) │ user_id │ amount │ status │ created_at │
│ │ (FK) │ │ │ │
├──────────┼──────────┼──────────┼──────────┼─────────────────┤
│ 101 │ 1 │ 199.00 │ paid │ 2024-01-05 │
│ 102 │ 1 │ 299.00 │ pending │ 2024-01-06 │
│ 103 │ 2 │ 99.00 │ paid │ 2024-01-07 │
└──────────┴──────────┴──────────┴──────────┴─────────────────┘
PK = Primary Key (主键) - 唯一标识每条记录
FK = Foreign Key (外键) - 建立表之间的关联
优点: - ✅ 数据结构清晰,易于理解 - ✅ 支持复杂查询(JOIN、子查询) - ✅ 事务支持,保证数据一致性 - ✅ 成熟稳定,社区活跃
缺点: - ❌ 水平扩展困难(分库分表复杂) - ❌ 不适合存储非结构化数据 - ❌ 高并发写入性能有限
2.2 非关系型数据库(NoSQL)¶
核心思想:不强制使用表结构,根据数据特点选择不同的存储模型。
主要类型:
文档型数据库(Document Store)¶
代表:MongoDB
存储JSON-like的文档,适合存储复杂、多变的数据结构。
// MongoDB 文档示例
{
"_id": ObjectId("..."),
"name": "张三",
"email": "zhangsan@example.com",
"tags": ["AI", "Python", "Deep Learning"], // 数组
"profile": { // 嵌套对象
"age": 25,
"city": "北京",
"skills": ["PyTorch", "TensorFlow"]
},
"experiments": [ // 嵌套数组
{"id": "exp001", "accuracy": 0.95},
{"id": "exp002", "accuracy": 0.96}
]
}
适用场景: - 数据结构经常变化 - 需要存储嵌套数据 - 内容管理系统 - AI实验元数据存储
键值型数据库(Key-Value Store)¶
代表:Redis、Memcached
简单的键值对存储,速度极快。
# Redis 示例
SET user:1:name "张三" # 设置键值
GET user:1:name # 获取值 → "张三"
SETEX session:abc 3600 "data" # 设置带过期时间的键(缓存)
# 适用场景:
# - 缓存热点数据
# - 会话存储
# - 实时排行榜
# - 模型预测结果缓存
适用场景: - 缓存 - 会话管理 - 实时数据处理 - 模型推理结果缓存
列族型数据库(Column Family)¶
代表:Cassandra、HBase
按列存储,适合海量数据和高并发写入。
行键 │ 列族: 用户属性 │ 列族: 行为数据
────────────┼─────────────────────────────┼─────────────────────
user_001 │ name: 张三, age: 25 │ click: 100, buy: 5
user_002 │ name: 李四, age: 30 │ click: 200, buy: 10
适用场景: - 时序数据(日志、传感器数据) - 海量数据存储(PB级) - 高并发写入
图数据库(Graph Database)¶
代表:Neo4j
存储实体和关系,适合复杂关系查询。
// Neo4j 查询示例:找到张三的朋友的朋友
MATCH (zhangsan:Person {name: "张三"})-[:FRIEND]->()-[:FRIEND]->(fof)
RETURN fof.name
适用场景: - 社交网络 - 知识图谱 - 推荐系统
2.3 SQL vs NoSQL 对比¶
| 特性 | SQL (关系型) | NoSQL (非关系型) |
|---|---|---|
| 数据模型 | 固定的表结构 | 灵活的结构 |
| Schema | 预定义,严格 | 动态,灵活 |
| 查询语言 | SQL | 各产品不同 |
| 事务支持 | 完整的ACID | 最终一致性 |
| 扩展性 | 垂直扩展为主 | 水平扩展容易 |
| 适用数据 | 结构化数据 | 非结构化/半结构化 |
| 最佳场景 | 复杂查询、事务 | 大数据、高并发 |
2.4 如何选择?¶
选择关系型数据库(SQL): - 数据结构清晰、固定 - 需要复杂查询和事务 - 数据一致性要求高 - 典型场景:金融系统、ERP、传统Web应用
选择非关系型数据库(NoSQL): - 数据结构多变 - 需要高并发读写 - 海量数据存储 - 典型场景:实时系统、缓存、日志、AI应用
AI项目中的选择建议:
训练数据管理 → PostgreSQL/MySQL(结构化)
实验追踪元数据 → MongoDB(灵活结构)
模型预测缓存 → Redis(高速缓存)
特征存储 → Cassandra/Redis(高并发)
向量检索 → Pinecone/Milvus(专用向量DB)
3. 数据库核心概念¶
3.1 表(Table)¶
表是关系型数据库中存储数据的基本单位,由行(Row)和列(Column)组成。
表名:students(学生表)
┌────────┬──────────┬────────┬────────────┐
│ id │ name │ age │ major │ ← 列(Column)= 字段
├────────┼──────────┼────────┼────────────┤
│ 1 │ 张三 │ 20 │ Computer │ ← 行(Row)= 记录
│ 2 │ 李四 │ 22 │ Math │
│ 3 │ 王五 │ 21 │ Physics │
└────────┴──────────┴────────┴────────────┘
术语对照: | 术语 | 说明 | 类比 | |-----|------|------| | 表(Table) | 数据的集合 | Excel工作表 | | 行(Row) | 一条记录 | Excel的一行 | | 列(Column) | 一个字段 | Excel的一列 | | 字段(Field) | 列的另一种说法 | - | | 记录(Record) | 行的另一种说法 | - |
3.2 主键(Primary Key)¶
主键是表中唯一标识每条记录的字段。
主键的特点: - ✅ 唯一性:每条记录的主键值都不同 - ✅ 非空性:主键不能为空 - ✅ 不可重复:不能有两条记录有相同的主键
-- 创建表时定义主键
CREATE TABLE students (
id INT PRIMARY KEY, -- id 是主键
name VARCHAR(50),
age INT
);
-- 主键示例
id: 1, 2, 3, 4, 5... 每个学生的id都不同
主键的选择策略:
# 策略1:自然主键(使用业务字段)
# 优点:有意义
# 缺点:可能变化(如身份证号升级)
PRIMARY KEY (id_card_number)
# 策略2:代理主键(自增数字)- 推荐
# 优点:简单、稳定、性能高
PRIMARY KEY (id AUTO_INCREMENT)
# 策略3:UUID
# 优点:全局唯一,适合分布式
# 缺点:占用空间大,性能稍差
PRIMARY KEY (uuid VARCHAR(36))
3.3 外键(Foreign Key)¶
外键用于建立表与表之间的关系。
-- 学生表
CREATE TABLE students (
student_id INT PRIMARY KEY,
name VARCHAR(50)
);
-- 成绩表
CREATE TABLE scores (
score_id INT PRIMARY KEY,
student_id INT, -- 外键
subject VARCHAR(50),
score DECIMAL(5,2),
FOREIGN KEY (student_id) REFERENCES students(student_id)
-- 表示:scores表的student_id必须存在于students表中
);
外键的作用: 1. 保证数据一致性:不能删除有成绩的学生 2. 建立关联:通过外键可以JOIN查询关联数据 3. 级联操作:删除学生时自动删除其成绩
3.4 索引(Index)¶
索引是加速数据查询的数据结构,类似书的目录。
没有索引的查询(全表扫描):
查找 age = 20 的学生
→ 检查第1行:age=20?否
→ 检查第2行:age=20?否
→ 检查第3行:age=20?是 ✓
→ 检查第4行:age=20?否
→ ... 检查100万行
有索引的查询:
查找 age = 20 的学生
→ 查索引:age=20 在第3行
→ 直接定位到第3行 ✓
索引的优缺点: - ✅ 优点:查询速度提升10-1000倍 - ❌ 缺点:占用存储空间,降低写入速度
什么时候创建索引: - 频繁作为查询条件的字段 - 经常用于JOIN的字段 - 经常用于排序的字段
-- 创建索引
CREATE INDEX idx_age ON students(age); -- INDEX索引加速查询
-- 创建联合索引
CREATE INDEX idx_name_age ON students(name, age);
3.5 数据库Schema¶
Schema是数据库的结构定义,包括: - 有哪些表 - 每个表有哪些字段 - 字段的数据类型 - 约束条件(主键、外键、唯一性等)
-- 一个完整的Schema示例
CREATE DATABASE school;
USE school;
CREATE TABLE students (
student_id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE, -- 唯一约束
age INT CHECK (age >= 0), -- 检查约束
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE courses (
course_id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
credits INT
);
CREATE TABLE enrollments (
enrollment_id INT PRIMARY KEY AUTO_INCREMENT,
student_id INT,
course_id INT,
grade DECIMAL(4,2),
FOREIGN KEY (student_id) REFERENCES students(student_id),
FOREIGN KEY (course_id) REFERENCES courses(course_id),
UNIQUE(student_id, course_id) -- 一个学生不能重复选同一门课
);
4. 常见数据库产品¶
4.1 关系型数据库¶
| 数据库 | 特点 | 适用场景 | 学习建议 |
|---|---|---|---|
| MySQL | 开源、流行、社区大 | Web应用、中小型项目 | ⭐ 首选学习 |
| PostgreSQL | 功能强大、标准兼容 | 复杂查询、GIS、AI项目 | ⭐ 进阶学习 |
| SQLite | 嵌入式、零配置 | 本地开发、测试、小型应用 | ⭐ 快速上手 |
| Oracle | 企业级、商业软件 | 大型企业、金融 | 按需学习 |
| SQL Server | 微软生态 | Windows环境、企业应用 | 按需学习 |
4.2 非关系型数据库¶
| 数据库 | 类型 | 特点 | 适用场景 |
|---|---|---|---|
| MongoDB | 文档型 | 灵活Schema、JSON存储 | 内容管理、AI元数据 |
| Redis | 键值型 | 内存存储、极速读写 | 缓存、会话、实时系统 |
| Cassandra | 列族型 | 分布式、高可用 | 时序数据、大数据 |
| Neo4j | 图数据库 | 关系查询高效 | 社交网络、知识图谱 |
| Elasticsearch | 搜索引擎 | 全文检索、分析 | 日志分析、搜索 |
4.3 AI专用数据库¶
| 数据库 | 类型 | 特点 | 适用场景 |
|---|---|---|---|
| Pinecone | 向量数据库 | 托管服务、易用 | 语义搜索、推荐 |
| Milvus | 向量数据库 | 开源、高性能 | 大规模向量检索 |
| Weaviate | 向量数据库 | 支持多种模型 | AI原生应用 |
| Chroma | 向量数据库 | 轻量、易集成 | LLM应用、RAG |
5. 数据库在AI项目中的作用¶
5.1 训练数据管理¶
# ❌ 传统做法:文件系统
# data/
# train/
# cat/
# cat_001.jpg
# cat_002.jpg
# dog/
# dog_001.jpg
# 问题:
# - 如何快速筛选高质量样本?
# - 如何记录数据增强历史?
# - 如何管理多版本数据集?
# ✅ 数据库做法
# 使用数据库存储元数据,文件系统存储实际数据
# 查询高质量训练样本
SELECT image_path, label
FROM training_samples
WHERE quality_score > 0.8
AND augmented = FALSE
AND dataset_version = 'v2.0'
LIMIT 10000;
5.2 实验追踪¶
# 使用数据库存储实验信息
import sqlite3
import json
from datetime import datetime
def log_experiment(config, metrics, model_path):
conn = sqlite3.connect('experiments.db')
conn.execute("""
INSERT INTO experiments
(model_name, config, accuracy, loss, model_path, created_at)
VALUES (?, ?, ?, ?, ?, ?)
""", (
config['model_name'],
json.dumps(config),
metrics['accuracy'],
metrics['loss'],
model_path,
datetime.now()
))
conn.commit()
conn.close()
# 查询最佳实验
# SELECT * FROM experiments WHERE model_name = 'ResNet50' ORDER BY accuracy DESC LIMIT 5
5.3 模型服务¶
# 预测结果缓存
import redis
import hashlib
redis_client = redis.Redis(host='localhost', port=6379)
def predict_with_cache(model, input_data):
# 计算输入的哈希值
input_hash = hashlib.md5(str(input_data).encode()).hexdigest()
# 先查缓存
cached = redis_client.get(f"pred:{input_hash}")
if cached:
return json.loads(cached) # 缓存命中,直接返回
# 缓存未命中,执行预测
result = model.predict(input_data)
# 存入缓存(设置1小时过期)
redis_client.setex(
f"pred:{input_hash}",
3600,
json.dumps(result) # json.dumps将Python对象转为JSON字符串
)
return result
5.4 特征存储(Feature Store)¶
# 特征存储架构
#
# 离线特征(批量计算,存储在数据仓库)
# - 用户历史行为统计
# - 商品属性特征
#
# 在线特征(实时计算,存储在Redis)
# - 用户实时点击
# - 当前会话特征
# 从特征存储获取特征
features = feature_store.get_features(
entity_type="user",
entity_id=user_id,
feature_names=["avg_purchase_amount", "last_visit_category", "total_orders"]
)
# 用于模型推理
prediction = model.predict(features)
🎯 本章自测¶
完成以下问题,检验你的理解:
概念理解¶
- 什么是数据库?它和文件存储有什么区别?
- 关系型数据库和非关系型数据库的主要区别是什么?
- 主键和外键分别有什么作用?
- 索引的作用是什么?有什么代价?
场景分析¶
- 以下场景应该选择什么类型的数据库?
- 电商网站的订单系统
- AI实验的元数据管理
- 模型预测结果缓存
-
实时推荐系统的用户行为日志
-
设计一个学生选课系统的数据库,需要哪些表?表之间的关系是什么?
实践准备¶
- 在你的电脑上安装MySQL或PostgreSQL,尝试连接数据库。
- 使用DBeaver或命令行客户端,查看数据库中有哪些默认数据库。
📚 扩展阅读¶
推荐资源¶
- 数据库系统概念(书籍) - 经典教材
- SQLBolt - 交互式SQL学习
- DB-Engines排名 - 了解流行数据库
下一步¶
完成本章后,继续学习 第02章:SQL核心语法,开始编写你的第一条SQL语句!
本章完 | 预计学习时间:2-3小时
📚 参考文献¶
核心论文¶
关系型数据库¶
- A Relational Model of Data for Large Shared Data Banks - Codd, 1970
-
关系型数据库的奠基之作
-
The Transaction Concept: Virtues and Limitations - Gray, 1981
-
事务处理的经典论文
-
Access Path Selection in a Relational Database Management System - Selinger et al., 1979
-
查询优化的经典算法
-
A History and Evaluation of System R - Chamberlin et al., 1981
-
System R的历史与评估
-
The Design of XFS - Sweeney et al., 2000
- XFS文件系统设计
NoSQL数据库¶
- Dynamo: Amazon's Highly Available Key-value Store - DeCandia et al., 2007
-
Dynamo论文,NoSQL的奠基之作
-
Bigtable: A Distributed Storage System for Structured Data - Chang et al., 2006
-
Bigtable论文
-
The Chubby Lock Service for Loosely-Coupled Distributed Systems - Burrows, 2006
-
Chubby锁服务
-
Cassandra: A Decentralized Structured Storage System - Lakshman & Malik, 2010
-
Cassandra论文
-
MongoDB: A Modern Database - Chodor et al., 2018
- MongoDB论文
向量数据库¶
-
Faiss: A Library for Efficient Similarity Search and Clustering of Dense Vectors - Johnson et al., 2017
- Faiss论文
-
Pinecone: A Vector Database for Machine Learning - Pinecone团队
- 向量数据库综述
-
Milvus: A Purpose-Built Vector Database for Large-Scale Vector Similarity Search - Wang et al., 2020
- Milvus论文
索引与优化¶
-
The Art of Computer Programming, Volume 3: Sorting and Searching - Knuth, 1998
- 排序和搜索的权威教材
-
The B-Tree: An Efficient Multi-User Search Tree - Bayer & McCreight, 1970
- B-Tree论文
技术博客¶
中文博客¶
- MySQL官方文档中文版 - MySQL官方文档
- PostgreSQL中文文档 - PostgreSQL官方文档
- MongoDB中文文档 - MongoDB官方文档
- Redis中文文档 - Redis官方文档
- 数据库技术内幕 - 数据库技术专栏
英文博客¶
- MySQL Blog - MySQL官方博客
- PostgreSQL Blog - PostgreSQL官方博客
- MongoDB Blog - MongoDB官方博客
- Redis Blog - Redis官方博客
- Use The Index - SQL索引优化指南
开源项目¶
关系型数据库¶
- MySQL - 开源关系型数据库
- PostgreSQL - 开源对象关系型数据库
- SQLite - 嵌入式关系型数据库
- MariaDB - MySQL的开源分支
- TiDB - 分布式关系型数据库
NoSQL数据库¶
- MongoDB - 文档型数据库
- Redis - 键值存储
- Cassandra - 分布式NoSQL数据库
- Neo4j - 图数据库
- Elasticsearch - 搜索引擎
向量数据库¶
数据库工具¶
- DBeaver - 通用数据库管理工具
- pgAdmin - PostgreSQL管理工具
- MySQL Workbench - MySQL管理工具
- DataGrip - JetBrains数据库IDE
参考书籍¶
中文书籍¶
- 《数据库系统概念》- Abraham Silberschatz、Henry F. Korth、S. Sudarshan 著,机械工业出版社
-
数据库领域的经典教材
-
《SQL必知必会》- Ben Forta 著,人民邮电出版社
-
SQL入门经典教材
-
《高性能MySQL》- [美] Baron Schwartz 等著,电子工业出版社
-
MySQL性能优化权威指南
-
《PostgreSQL实战》- 谭峰 著,机械工业出版社
-
PostgreSQL实践指南
-
《MongoDB权威指南》- Kristina Chodorow 著,人民邮电出版社
-
MongoDB权威指南
-
《Redis设计与实现》- 黄健宏 著,机械工业出版社
-
Redis源码分析
-
《数据库索引设计与优化》- [美] Tapio Lahdenmäki 著,电子工业出版社
-
索引设计权威指南
-
《深入理解计算机系统》- Randal E. Bryant、David R. O'Hallaron 著,机械工业出版社
- 系统级理解数据库
英文书籍¶
- "Database System Concepts" - Abraham Silberschatz, Henry F. Korth, S. Sudarshan
-
McGraw-Hill,数据库领域的经典教材
-
"SQL for Smarties" - Robert J. Muller
-
Morgan Kaufmann,SQL高级技巧
-
"High Performance MySQL" - Baron Schwartz, Peter Zaitsev, Vadim Tkachenko
-
O'Reilly,MySQL性能优化权威指南
-
"PostgreSQL: Up and Running" - Regina Obe, Leo Hsu
-
O'Reilly,PostgreSQL实践指南
-
"MongoDB: The Definitive Guide" - Kristina Chodorow
-
O'Reilly,MongoDB权威指南
-
"Redis in Action" - Josiah L. Carlson
-
Manning,Redis实践指南
-
"Designing Data-Intensive Applications" - Martin Kleppmann
-
O'Reilly,数据密集型应用设计
-
"Seven Databases in Seven Weeks" - Eric Redmond, Jim R. Wilson
- Pragmatic Bookshelf,多数据库对比
在线课程¶
B站推荐¶
💡 以下为推荐的搜索关键词,请在B站直接搜索获取最新内容。
推荐搜索关键词: - "MySQL 入门教程 2024"、"SQL 基础语法" - "PostgreSQL 教程"、"Redis 入门到精通" - "数据库原理 讲解"、"事务与索引 详解" - "MongoDB 教程"、"数据库面试题"
英文课程¶
- SQL for Data Science (Coursera) - SQL数据科学
- Databases and SQL for Data Science (Coursera) - SQL专项课程
- MongoDB University - MongoDB官方课程
- Redis University - Redis官方课程
- PostgreSQL Tutorial - PostgreSQL教程
社区资源¶
中文社区¶
- MySQL中文社区 - MySQL中文学习社区
- PostgreSQL中文社区 - PostgreSQL中文社区
- MongoDB中文社区 - MongoDB中文社区
- Redis中文社区 - Redis中文社区
- 知乎数据库话题 - 数据库讨论
英文社区¶
- MySQL Community - MySQL社区
- PostgreSQL Community - PostgreSQL社区
- MongoDB Community - MongoDB社区
- Redis Community - Redis社区
- Stack Overflow SQL - SQL技术问答
论坛与问答¶
- Stack Overflow MySQL - MySQL技术问答
- Stack Overflow PostgreSQL - PostgreSQL技术问答
- Stack Overflow MongoDB - MongoDB技术问答
- Stack Overflow Redis - Redis技术问答
- DBA Stack Exchange - 数据库管理员问答
邮件列表与Slack¶
- MySQL Mailing Lists - MySQL邮件列表
- PostgreSQL Mailing Lists - PostgreSQL邮件列表
- MongoDB Community - MongoDB社区
- Redis Community - Redis社区