← 返回知识宇宙
数据库·入门

数据库导论:12 分钟看懂整个数据库世界

面向零基础学习者的数据库导论教程,12分钟建立数据库世界地图,覆盖为何需要数据库、OLTP vs OLAP、9类数据库系统(关系型、键值、文档、宽列、图、搜索、时序、OLAP、向量)、SQL vs NoSQL、共同框架(Schema、数据类型、CRUD、持久化、索引)、对象存储与数据库的区别,以及程序如何通过 Driver、Connection Pool、ORM 连接数据库。

知识编号30
关系轨道4
学习难度入门
数据库数据库导论SQLNoSQLOLTPOLAP关系型数据库键值存储文档数据库图数据库
抖音

视频讲解

数据库导论:12 分钟看懂整个数据库世界

Episode 0 / 导论篇:建立地图,而不是背定义。


A. 完整课程教材

课程定位

这节课不是传统大学数据库课。它不从定义开始,不要求观众记住一堆术语,而是用一次探索式旅程回答三个问题:

12 分钟之后,观众应该第一次真正看懂:为什么 MySQL、PostgreSQL、Redis、MongoDB、Cassandra、ScyllaDB、ClickHouse、Elasticsearch、Neo4j、InfluxDB、DuckDB、Qdrant、Milvus 会同时存在。

本期是整个数据库系列的 Episode 0。它负责分类、定位、比较和埋钩子,不把每个数据库的内部机制一次讲完。


MODULE 01|为什么需要数据库?

先不要急着定义数据库。想象你在做一个小网站,最开始只有几条用户记录,放在 TXT、CSV、JSON 文件里当然能跑。

TXT          CSV             JSON
用户列表      订单列表          配置对象
    \          |             /
       数据越来越多
             |
             v
      查询、并发、恢复、扩展

问题不是“文件能不能存数据”。文件当然能存。真正的问题是:数据变多、用户变多、程序变复杂之后,文件会逐渐顶不住。

你会开始遇到这些事:

数据库真正解决的不是“能不能存”,而是“能不能安全、高效、长期、并发地管理数据”。

文件
  |
  | 数据量上升
  v
问题出现
  ├─ Query:怎么查
  ├─ Concurrency:怎么多人同时改
  ├─ Integrity:怎么不写坏
  ├─ Recovery:宕机后怎么恢复
  ├─ Persistence:怎么长期保存
  └─ Scale:怎么变大
  |
  v
Database

这一刻,数据库才出现。它不是更高级的文件夹,而是一套管理数据的系统。


MODULE 02|为什么会出现这么多数据库?

第一个明显分叉,是 OLTP 和 OLAP。

OLTP 指在线事务处理。它关心大量、小型、高频、实时的业务操作,比如注册、下单、支付、扣库存、改余额。MySQL、PostgreSQL、Oracle、SQL Server 是典型代表。

OLAP 指在线分析处理。它关心扫描大量历史数据,做 SUM、AVG、GROUP BY、趋势分析和报表统计。ClickHouse、Snowflake、BigQuery、DuckDB 是典型代表。

OLTP                         OLAP
小交易流                      大表扫描
订单  支付  库存               十亿行数据
  |    |    |                    |
  v    v    v                    v
马上正确完成                 快速聚合算完

一句话:

OLTP 更关心“一笔业务能不能马上正确完成”;OLAP 更关心“十亿条数据能不能马上算完”。

但 OLTP / OLAP 只是数据库分化的一部分原因,不是全部原因。数据库越来越多,是因为人类向数据提出的问题越来越不一样。

继续分化的原因包括:

核心观点:

不是数据库越来越乱,而是问题越来越多样。


MODULE 03|数据库世界地图

下面这张图是本期最重要的知识地图。但必须先说明:这些类别并不都在同一个分类维度上。

Relational、Key-Value、Document、Wide-Column、Graph 主要描述逻辑数据模型,也就是数据在数据库里主要被抽象成什么样。

Search、Time-Series、OLAP、Vector 更多代表专业工作负载、核心访问模式或专业数据库系统类别。

为了工程理解,我们把它们放进同一张类别矩阵,但要记住:

类别存在重叠,现代数据库越来越 Multi-model。

                         Database World
                               |
       -------------------------------------------------
       |          |          |          |              |
  Data Model   Workload   Access     Scale        Ecosystem
       |          |          |          |              |
 表/键值/文档   事务/分析   搜索/相似   单机/分布式   Driver/ORM/SDK

Relational 像一张张表。它擅长复杂业务、事务和关联关系。PostgreSQL、MySQL、Oracle、SQL Server 是老牌代表。它不是只能做传统表,PostgreSQL 还能处理 JSON,甚至通过 pgvector 做向量检索。

Key-Value 像一个巨大的字典:给我 Key,我马上给你 Value。Redis 和 DynamoDB 是典型代表。它擅长缓存、会话、排行榜、状态读取,但不适合复杂条件查询和关系查询。

Document 把数据组织成类似 JSON 的文档。MongoDB、Couchbase 是代表。它适合结构变化快、嵌套明显的内容,比如商品详情、用户画像、配置数据。

Wide-Column 不是列式存储。它更像用 Row Key 找到一个分区,再在 Column Family 里组织大量稀疏字段。Cassandra、ScyllaDB、HBase 代表这类系统,擅长海量写入和水平扩展。

Graph 把世界看成 Node 和 Edge。Neo4j 是代表。它擅长多跳关系,比如好友网络、知识图谱、风控链路、推荐路径。

Search 关注全文检索和相关性排序。Elasticsearch、OpenSearch 是代表。它不是为了强事务下单而生,而是为了“用户搜一句话,系统找到最相关的文档”。

Time-Series 关注时间戳和指标。InfluxDB、TimescaleDB 常用于监控、IoT、行情、传感器数据。它的问题通常是“过去 5 分钟 CPU 平均值是多少”。

OLAP 关注大规模分析。ClickHouse、DuckDB、Snowflake 代表不同场景下的分析系统。它擅长扫描和聚合,不适合高频单行事务更新。

Vector 关注向量和元数据。Qdrant、Milvus、Pinecone、pgvector 常用于 RAG、语义搜索和多模态检索。它不是简单“存非结构化数据”,而是把文本、图片、音频经过模型变成 Embedding,再做 Similarity Search。


MODULE 04|SQL vs NoSQL

SQL 是结构化查询语言,和关系型数据库强相关。你用它描述“我要哪些列、从哪张表、按什么条件过滤、怎么 Join”。

NoSQL 不是一个严谨的数据模型分类。它是历史上形成的宽泛类别,常被理解为 Not Only SQL,通常包括 Key-Value、Document、Wide-Column、Graph。

SQL / NoSQL
    |
    v
方便但粗糙的标签
    |
    v
真正要问:
数据模型是什么?
访问模式是什么?
核心工作负载是什么?

现代数据库已经高度融合:

所以真正理解数据库,不要只问“SQL 还是 NoSQL”。更好的问题是:它的数据怎么组织、它最擅长什么访问模式、它主要为哪种工作负载优化。


MODULE 05|所有数据库共同面对的问题

以后无论单独讲 MySQL、PostgreSQL、Redis、MongoDB、ScyllaDB、ClickHouse、Elasticsearch、Qdrant,都可以回到同一套拆解框架。

1. Data Model / Schema

Schema 不一定都等于关系型数据库里的固定表结构。更广义地说,它是数据组织规则。

Relational: Table -> Row -> Column
MongoDB:    Collection -> Document -> Field
Redis:      Key -> Value
Neo4j:      Node -> Edge
Vector DB:  Collection -> Vector + Metadata

2. Data Type

数据类型回答的是:这个字段到底应该按什么方式保存和计算。

Integer 包括 SMALLINT、INT / INTEGER、BIGINT,适合年龄、数量、计数。但手机号、银行卡号、身份证号通常不应该因为长得像数字就当整数,因为它们不参与数学计算,还可能有前导 0。

Exact Numeric 包括 DECIMAL、NUMERIC,适合金额、价格、金融数据。钱通常不应该随便用 FLOAT,因为浮点数可能出现精度误差。

Floating Point 包括 FLOAT、DOUBLE,适合科学计算、概率、测量值、模型结果。它追求近似计算效率,不追求每一分钱精确。

String 包括 CHAR、VARCHAR、TEXT,适合名称、手机号、邮箱、长文本。

Boolean 表示 TRUE / FALSE。

Date & Time 包括 DATE、TIME、DATETIME、TIMESTAMP。真实工程里还会遇到 Timezone 和 UTC,但本期只需要知道时间不是普通字符串。

JSON 适合灵活配置和嵌套数据。

Binary / BLOB 理论上能保存图片、文件等二进制内容。但能放数据库,不代表一定应该放数据库。

UUID 常用于分布式环境中的唯一标识。

Vector 形如 [0.21, -0.84, 0.17, ...],来自 Embedding,用于 Semantic Search 和 RAG。

28              -> INT
19.99           -> DECIMAL
"OpenAI"        -> VARCHAR
true            -> BOOLEAN
2026-08-26      -> TIMESTAMP
{JSON}          -> JSON
550e8400...     -> UUID
[0.12,-0.83]    -> VECTOR

3. CRUD / Query

所有数据库都绕不开 Create、Read、Update、Delete。但不同数据库用不同访问方式回答问题:

4. Persistence / Durability

Persistence 是数据能保存下来。Durability 是系统承诺:一旦写入成功,就尽量别因为宕机而丢。

Memory
  |
  | 快,但断电会丢
  v
Disk / Persistent Storage
  |
  | 慢一些,但能长期保存
  v
Durable Data

即使 Redis 主要以内存访问著称,也有持久化机制。WAL、AOF、RDB、Checkpoint 这些名字以后会单独展开,本期只要知道它们是数据库为了恢复数据而设计的机制。

5. Index / Access Path

索引回答的是:数据越来越多以后,怎么快速找到目标。

同一个问题:找到数据
    |
    |-- B+ Tree:范围查询、排序
    |-- Hash:等值查找
    |-- Inverted Index:全文搜索
    |-- HNSW:向量近邻
    |-- IVF:向量分桶召回

不同数据库之所以擅长不同查询,很大程度来自底层选择了不同的数据结构和访问路径。


MODULE 06|对象存储

Object Storage 不是 Database。

Amazon S3、Alibaba OSS、Tencent COS、MinIO 这类对象存储,主要保存图片、视频、音频、PDF、AI 模型文件、数据集、大型二进制对象。

对象可以简单理解为:

Object = Data + Metadata + Object Key

数据库擅长管理、查询、关系、状态。对象存储擅长保存大量文件和大对象。

MP4   PDF   PNG   MODEL
 |     |     |      |
 v     v     v      v
Object Storage Bucket
S3 / OSS / COS / MinIO

Database
保存:文件地址、状态、权限、索引信息

所以图片理论上能放进数据库 BLOB,但工程上更常见的是:文件放对象存储,数据库保存文件的 URL、元数据、归属关系和权限状态。


MODULE 07|程序怎么真正使用数据库

应用程序不是直接“碰硬盘”。它通常通过 Driver、Connection、Connection Pool、ORM 或 Client SDK 使用数据库。

Driver 是数据库驱动。Python、Java、Go、Node.js 都需要对应驱动来和数据库通信。

Application
    |
    v
Driver
    |
    v
Connection
    |
    v
Database

Connection 是应用和数据库之间的一条通信通道。每次访问数据库都重新建立连接成本很高,所以应用通常维护 Connection Pool。

Connection Pool
  [conn1] [conn2] [conn3]
      |      |      |
      v      v      v
   借一个  使用  还回去

ORM 是 Object Relational Mapping。程序里是 User Object,数据库里是 users Table,ORM 负责在两边映射。

User Object                 users Table
{ id, name, age }   <-->    id | name | age
          \          ORM          /

常见 ORM 包括 Hibernate、SQLAlchemy、Prisma、GORM。要注意:ORM 主要针对关系型数据库。Document Database 可能出现 ODM。Redis、Elasticsearch、Vector DB 很多时候直接使用 Client SDK。

Migration 是数据库结构的版本管理。代码有版本,数据库结构同样有版本。

v1 users
id | name
    |
    v
v2 users
id | name | email
    |
    v
v3 users
id | name | email
index(email)

这就是 Schema Migration。数据库不是一次创建后永远不变,它会跟着业务一起演化。


B. 12 分钟内容时间轴

时间核心知识必须出现的产品视觉重点下一段连接
00:00-00:35开场:为什么数据库世界看起来很乱MySQL、Redis、MongoDB、ClickHouse、Elasticsearch、Qdrant产品名从星图中浮现,最后收束成“数据库世界地图”先从最原始的文件开始
00:35-02:00文件能存数据,但不能长期安全高效管理复杂数据无TXT / CSV / JSON 堆积,问题标签逐个压上来,Database 圆柱体出现数据库出现后,为什么还会继续分化
02:00-03:20OLTP vs OLAP 是第一条明显分叉PostgreSQL、MySQL、Oracle、SQL Server、ClickHouse、Snowflake、BigQuery、DuckDB左侧小交易高速流动,右侧大表列被扫描聚合OLTP/OLAP 不是全部分类原因
03:20-05:35数据库类别地图:9 类系统与代表产品PostgreSQL、MySQL、Redis、MongoDB、Cassandra、ScyllaDB、Neo4j、Elasticsearch、InfluxDB、ClickHouse、DuckDB、Qdrant、Milvus中心地图展开,每类出现数据形态和代表产品类别之间容易混淆,需要差异矩阵
05:35-06:50Database Difference Matrix:看懂核心差异同上上三角矩阵 Zoom / Pan,重点高亮 7 组组合SQL/NoSQL 是更粗糙的历史标签
06:50-07:45SQL vs NoSQL:方便但不够严谨PostgreSQL、Elasticsearch、ClickHouse、Redis、pgvectorSQL/NoSQL 两个标签被拆成 Data Model / Access Pattern / Workload真正学习数据库要看共同底层问题
07:45-09:35共同框架:Schema、Data Type、CRUD、Persistence、IndexRedis、MongoDB、Neo4j、Qdrant数据类型传送带、CRUD 分叉、Memory/Disk、索引寻路有些文件不该塞进数据库
09:35-10:20Object Storage 不是 DatabaseS3、Alibaba OSS、Tencent COS、MinIOMP4/PDF/PNG/MODEL 飞入 Bucket,数据库只保存元数据和 URL数据库最终要被程序使用
10:20-11:35Driver、Connection、Pool、ORM、MigrationHibernate、SQLAlchemy、Prisma、GORMApp -> Driver -> Pool -> DB,ORM 映射,Schema v1/v2/v3 动画收束到后续系列路线
11:35-12:00总结:建立地图,开启系列PostgreSQL、MySQL、Redis、MongoDB、ClickHouse、Elasticsearch、Qdrant、Milvus世界地图重新点亮,后续课程卡片排成路线下一期进入具体数据库

C. Remotion Scene List

Scene ID时长画面目的主要视觉元素动画方式屏幕文字数据流TransitionLogoCodeMatrix / Chart / Diagram
S01-ColdOpen35s建立问题:数据库为什么这么多产品名星图、中心标题、地图轮廓名称粒子聚合,镜头推进数据库世界不是一堆名字名称 -> 地图快速 Push In否否Diagram
S02-FilePressure50s从文件引出数据库TXT、CSV、JSON、问题标签、Database文件堆积,标签压缩,圆柱体弹出文件能存,但不够管理文件 -> 问题 -> 数据库Glass Wipe否否Diagram
S03-DatabaseJobs35s说明数据库解决什么Query、Concurrency、Integrity、Recovery、Scale 节点六节点环绕数据库依次点亮安全、高效、长期、并发数据库 -> 六能力Radial Reveal否否Diagram
S04-OLTPvsOLAP70s建立第一分叉左交易流、右列式大表、聚合器左侧小点高速进入,右侧列块被扫描一笔业务 vs 十亿行分析Transaction / Rows -> ResultSplit Screen是否Chart
S05-WhyManyDBs30s扩大分化原因数据形态、查询方式、性能、规模、一致性、延迟六张卡片从 OLTP/OLAP 裂变问题不同,数据库不同问题 -> 类别Morph否否Diagram
S06-CategoryMap95s展开 9 类数据库地图9 类节点、数据形态、产品名中心放射,逐类展开,产品贴标类别有重叠,现代系统 Multi-model中心 -> 9 类Orbit Pan是否Diagram
S07-ClassificationMatrix40s用矩阵固化地图分类矩阵行列逐行扫光,高亮产品看数据形态、查询、Schema、擅长什么类别 -> 属性Matrix Zoom是否Matrix
S08-DifferenceMatrix75s对比核心差异9x9 上三角矩阵Zoom / Pan / Highlight 7 个 Cell两类数据库差在哪类别 A + B -> 差异Camera Pan否否Matrix
S09-SQLNoSQL55s降低 SQL/NoSQL 的权重SQL/NoSQL 标签、三维分类轴标签拆解成模型/访问/负载SQL/NoSQL 方便但粗糙标签 -> 三轴Shatter Morph是否Diagram
S10-CommonFramework45s建立后续系列统一框架Schema、Data Type、Query、Durability、Index 五节点五节点转成雷达图以后每期都回到这五问系统 -> 五问Radar Reveal否否Chart
S11-DataTypeBelt55s小白理解数据类型传送带、数据值、类型标签数据项进入扫描门并贴标签类型决定保存和计算方式值 -> 类型Conveyor否否Diagram
S12-QueryAndIndex55s展示访问路径差异B+ Tree、Hash、Inverted Index、HNSW、IVF同一查询分成五条寻路动画擅长什么,取决于怎么找Query -> Access PathMulti-path否否Diagram
S13-ObjectStorage45s明确对象存储不是数据库MP4/PDF/PNG/MODEL、Bucket、DB 元数据表大文件飞向 Bucket,URL 写入 DBObject Storage 不是 DatabaseFile -> Bucket; Metadata -> DBBucket Drop是否Diagram
S14-AppToDB45s程序如何连接数据库Application、Driver、Connection、Pool、Database连接线建立,Pool 借还动画应用通过连接使用数据库App -> Driver -> Pool -> DBLine Draw否否Diagram
S15-ORMMigration45s解释 ORM 和 MigrationUser Object、users Table、ORM、Schema v1/v2/v3对象字段映射到表列,Schema 版本翻页代码有版本,Schema 也有版本Object -> ORM -> Table; v1 -> v3Flip + Slide是否Diagram
S16-SeriesMap25s收束并埋后续课程后续课程卡片路线地图节点变成课程列表下一期开始拆具体数据库地图 -> 系列Pull Back是否Diagram

D. Database Classification Matrix

类别数据主要长什么样最典型查询Schema最擅长相对不擅长代表产品
RelationalTable / Row / ColumnSQL、Join、条件查询通常较强复杂业务、事务、关联关系特殊超大规模工作负载未必最优PostgreSQL、MySQL、Oracle、SQL Server
Key-ValueKey -> Value按 Key 查通常弱 / 灵活极低延迟读取、缓存、状态复杂条件查询、关系查询Redis、DynamoDB
DocumentDocument / JSON-like按字段、文档查询灵活JSON-like 内容、快速变化的数据结构大量复杂 JoinMongoDB、Couchbase
Wide-ColumnRow Key + Column FamilyPartition Key / Range灵活海量写入、水平扩展任意复杂查询Cassandra、ScyllaDB、HBase
GraphNode + EdgeRelationship Traversal图结构多跳关系、关系网络普通聚合分析Neo4j
SearchDocument + IndexFull-text Search灵活全文搜索、相关性排序强事务业务Elasticsearch、OpenSearch
Time-SeriesTimestamp + Metrics时间范围、聚合通常较规则IoT、监控、行情通用业务关系InfluxDB、TimescaleDB
OLAP大型表格数据SUM / GROUP BY / Scan通常较强亿级数据统计分析高频单行更新事务ClickHouse、DuckDB、Snowflake
VectorVector + MetadataSimilarity Search灵活RAG、语义搜索、多模态检索普通业务事务Qdrant、Milvus、Pinecone、pgvector

E. Database Difference Matrix

说明:下表使用上三角形式。每个有效 Cell 只保留两个核心区别,优先比较数据模型、访问模式和核心工作负载。

RelationalKey-ValueDocumentWide-ColumnGraphSearchTime-SeriesOLAPVector
Relational同类表关系 vs 键值对;复杂查询 vs Key直取固定关系 vs 灵活文档;Join vs 嵌套结构强关系 vs 宽行分区;事务业务 vs 海量写入表关联 vs 点边图;Join vs 路径遍历精确查询 vs 全文检索;事务一致 vs 相关排序业务实体 vs 时间指标;任意查询 vs 时间聚合在线事务 vs 大规模分析;行级操作 vs 聚合扫描结构数据 vs 向量空间;SQL条件 vs 相似搜索
Key-Value同类单值读取 vs 文档字段;弱结构 vs 嵌套结构单Key直取 vs 分区范围;缓存状态 vs 海量写入键值映射 vs 关系网络;直取 vs 多跳遍历Key命中 vs 关键词匹配;状态读取 vs 相关排序当前状态 vs 时间序列;单点读写 vs 区间聚合低延迟点查 vs 扫描分析;短请求 vs 大计算精确Key vs 语义近邻;缓存值 vs Embedding
Document同类文档嵌套 vs 宽行族;字段查询 vs 分区范围文档对象 vs 点边关系;嵌套结构 vs 路径遍历文档管理 vs 文档检索;字段查询 vs 相关排序内容文档 vs 时间指标;灵活字段 vs 时间窗口灵活文档 vs 分析表;单文档读写 vs 聚合扫描JSON文档 vs 向量元组;字段匹配 vs 语义相似
Wide-Column同类分区宽行 vs 点边网络;范围读取 vs 关系遍历分区查询 vs 倒排检索;海量写入 vs 文本相关宽行事件 vs 时间指标;写入扩展 vs 时间聚合分布写入 vs 列式分析;Key范围 vs 全表扫描分区数据 vs 向量空间;Range查 vs ANN搜索
Graph同类显式关系 vs 文本索引;路径遍历 vs 关键词查关系网络 vs 时间指标;多跳路径 vs 时间窗口关系路径 vs 聚合扫描;图结构 vs 大宽表显式关系 vs 隐式相似;路径遍历 vs 近邻搜索
Search同类文本相关 vs 时间趋势;倒排索引 vs 时间索引文档检索 vs 数据分析;相关排序 vs 聚合统计关键词匹配 vs 语义相似;倒排索引 vs ANN索引
Time-Series同类指标时间窗 vs 多维分析;时间聚合 vs 任意聚合时间趋势 vs 语义空间;指标相似 vs 向量近邻
OLAP同类统计分析 vs 语义检索;列式扫描 vs ANN召回
Vector同类

F. Data Type Cheat Sheet

类型存什么一个例子最容易犯什么错误
INT普通整数计数年龄 28、库存 120把手机号当整数
BIGINT很大的整数订单数、雪花 ID前端数字精度丢失
DECIMAL精确小数价格 19.99用 FLOAT 存金额
FLOAT近似小数概率 0.83期待完全精确
DOUBLE更高精度近似小数科学测量值仍把它当金融精确值
CHAR固定长度字符串国家码 CN用它存长度变化大的文本
VARCHAR可变短文本邮箱、手机号长度限制设计太小
TEXT长文本文章正文拿它做高频精确过滤
BOOLEAN真或假is_active = true用字符串 yes/no 代替
DATE日期2026-08-26混入具体时分秒
TIME时间14:30:00脱离日期误判业务含义
TIMESTAMP时间点创建时间 UTC忽略 Timezone / UTC
JSON灵活嵌套结构用户偏好配置把核心关系全塞 JSON
BLOB二进制内容小文件、二进制片段把大视频直接塞数据库
UUID全局唯一标识550e8400-e29b当作有序递增 ID
VECTOREmbedding 向量[0.21,-0.84,0.17]以为它是原始文本

G. 后续系列目录

后续课程为什么值得单独讲最容易和谁混淆最值得拆的核心机制
PostgreSQL关系型核心能力强,又不断扩展 JSON、全文、向量能力MySQL、MongoDB、pgvectorMVCC、索引、事务、扩展体系
MySQLWeb 业务最常见入口,工程实践覆盖面极广PostgreSQL、MariaDBInnoDB、B+ Tree、事务隔离、主从复制
Redis小白最容易听过,但常误解为“只是缓存”Key-Value、内存数据库、消息队列数据结构、过期策略、持久化、集群
MongoDBDocument 模型代表,适合解释灵活 SchemaPostgreSQL JSON、Elasticsearch文档建模、索引、聚合管道、副本集
ScyllaDBCassandra 思想的高性能实现,适合讲极致吞吐Cassandra、Wide-Column、Key-Value分区、LSM、Shard-per-core、一致性级别
CassandraWide-Column 和分布式高可用代表ScyllaDB、HBasePartition Key、Quorum、Compaction、复制
ClickHouseOLAP 入门最直观,列式存储和聚合性能突出PostgreSQL、DuckDB、Elasticsearch列式存储、MergeTree、分区、向量化执行
DuckDB单机分析和本地数据科学场景越来越重要SQLite、ClickHouse、Pandas嵌入式 OLAP、列式执行、Parquet 查询
Elasticsearch全文搜索和相关性排序代表MongoDB、Vector DB、ClickHouse倒排索引、分词、相关性评分、聚合
Neo4jGraph 模型最直观,适合讲关系遍历Relational Join、Vector SearchNode / Edge、Cypher、多跳路径、图建模
InfluxDBTime-Series 模型清晰,适合监控和 IoTClickHouse、TimescaleDB时间窗口、Retention、Downsampling、Tag/Field
Qdrant / MilvusAI 时代理解 RAG 和语义搜索的关键Elasticsearch、pgvector、普通 Document DBEmbedding、ANN、HNSW、Metadata Filter

Remotion 视觉设计总纲

视觉语言

整体风格:高级 IT 教学动画 + Vox 信息图动画 + 极简数据可视化。

禁止方向:

主要视觉对象:

必须制作的重点动画

1. 文件 -> 数据库

TXT、CSV、JSON 从左侧不断堆积。右侧出现问题标签:Query、Concurrency、Integrity、Recovery、Index、Scale。文件堆被压缩成混乱状态后,Database 圆柱体从中心升起,把问题标签吸附成有序能力环。

2. OLTP vs OLAP

屏幕左右分屏。左侧大量小 Transaction 像短脉冲快速通过,标签是 order、payment、inventory。右侧是巨大的列式数据表,镜头沿列向下扫描,SUM、AVG、GROUP BY 在底部汇总。

3. Database Category Map

中心是 Database World。九类数据库沿环形展开,每个节点显示数据形态:表、键值、文档、宽行、点边、倒排索引、时间线、列式表、向量点云。代表产品以文字 Logo 形式贴在节点下方。

4. Database Difference Matrix

大型二维矩阵只显示上三角。镜头先俯视全局,再逐个 Zoom 到重点 Cell:Relational × Key-Value、Relational × Document、Relational × OLAP、Document × Search、Search × Vector、Graph × Vector、Wide-Column × Relational。

5. Data Type Conveyor Belt

传送带从左到右运行。不同数据值经过扫描门,被贴上 INT、DECIMAL、VARCHAR、BOOLEAN、TIMESTAMP、JSON、UUID、VECTOR。错误案例用红色短闪提醒:手机号不是 INT,钱别随便 FLOAT。

6. Index 可视化

同一个查询“找目标数据”分成四路动画:B+ Tree 沿树层下降;Hash 直接跳桶;Inverted Index 从词找到文档列表;HNSW 在点云中跳近邻;IVF 先进入分区再召回候选。

7. Object Storage

大型 MP4、PDF、PNG、MODEL 被推向数据库时,数据库变红并出现“Not ideal”。随后这些文件转向 S3 / OSS / COS / MinIO Bucket,数据库只保存 URL、Metadata、Owner、Permission。

8. ORM Mapping

左侧 User Object 展开字段 id、name、age。右侧 users Table 展开列 id、name、age。中间 ORM 建立连线。随后画面下方出现 Driver、Connection、Connection Pool,把 ORM 放回完整访问链路。

9. Migration

Schema 卡片按 v1、v2、v3 翻页。v1 只有 id/name,v2 添加 email,v3 添加 index(email)。最后代码版本线和数据库版本线并排前进,强调数据库结构也有版本。


总结

数据库不是一个单一工具,而是一整套围绕数据模型、访问模式、工作负载、持久化、索引和程序连接方式分化出来的系统家族。

这节导论课的目标不是让观众背完所有概念,而是建立地图。后续每一期都应该回到同三个问题:数据长什么样,最擅长回答什么问题,为什么不能被另一个数据库完全替代。

实践示例

引用此知识点

更多数据库知识