飞书采用多引擎混合存储架构,不存在单一的“主数据库”,而是针对不同业务场景匹配最优存储方案,底层统一依托字节跳动自研的分布式存储底座 ByteStore 支撑 EB 级数据落地。以下是按业务模块拆分的详细选型,其中私有化交付的标准组件均有官方公开资料可查。
一、核心结构化业务数据:MySQL 为主力关系型数据库
承载场景
用户组织架构、权限配置、审批流、日历、待办、支付订单、租户元数据等强一致性、结构化、事务要求高的核心业务数据。
实现细节
- 采用一主多从 + 分库分表的集群架构,按租户维度水平拆分,支撑海量企业数据隔离与高并发读写;
- 在飞书官方私有化交付方案中,MySQL 是标配的关系型数据库组件,采用一主两从的高可用部署模式;
- 字节内部同时有自研的分布式数据库中间件做分库分表与读写分离管控,保障大规模集群下的稳定性。
二、缓存与高并发热点层:Redis 集群
承载场景
用户在线状态、会话未读数、消息最近联系人列表、用户会话缓存、分布式锁、接口限流、热点配置数据等高频读写、对延迟极度敏感的场景。
实现细节
- 是整个系统的性能缓冲层,90% 以上的高频读请求直接由 Redis 承接,大幅降低关系型数据库压力;
- 私有化部署中同样为标配组件,采用集群模式部署,保障高可用与扩展性。
三、IM 即时消息存储:分层混合架构
飞书消息采用「热缓存 + 冷持久化 + 检索引擎」的三层架构,兼顾读写性能与存储成本:
- 热消息(近7天活跃消息):存储在 Redis 中,保证多端同步拉取的低延迟;
- 历史冷消息:持久化到分布式文档/列存数据库(内部基于 ByteStore 封装,私有化场景可适配 MongoDB / HBase 方案),支持海量消息永久存储;
- 全文检索:独立部署 Elasticsearch 集群,支撑聊天记录全文搜索,是官方私有化方案中的标配组件,且因 IM 检索量大单独独占集群资源。
四、协作文档与多维表格:专属存储引擎 + 结构化底座
1. 云文档(Doc/Sheet/思维笔记)
- 元数据(文档归属、权限、版本号):存储在 MySQL 中,保障事务一致性;
- 正文内容与操作日志:基于 CRDT 协同算法的增量操作,底层写入字节自研的 ByteStore 分布式存储系统,支持海量版本历史与高并发编辑;
- 大体积附件:直接落入对象存储(TOS),不占用数据库容量。
2. 多维表格
采用「关系型 + 文档型 + 对象存储」的混合架构:
- 核心结构化行数据:存储于关系型数据库,保障关联查询、事务一致性;
- 表结构、视图配置等灵活元数据:存储于文档型数据库,适配用户频繁自定义字段的需求;
- 附件与大字段:存入对象存储,降低数据库压力。
五、全文检索引擎:Elasticsearch
承载场景
全局搜索(搜消息、搜文档、搜联系人、搜邮件)、日志检索、多维表格复杂查询等场景。
实现细节
- 按业务线独立拆分集群,IM、邮件、文档各有专属 ES 集群,避免业务间资源争抢;
- 是飞书私有化部署的标准组件,其中邮件、IM 业务因检索量大,均要求独立集群部署。
六、非结构化数据:对象存储 TOS
所有文件、图片、音视频、会议录制、妙记文件、文档附件等非结构化二进制数据,全部存入字节跳动对象存储 TOS(私有化场景可对接客户自有对象存储),数据库仅存储文件元数据与引用地址,大幅降低数据库存储压力。
七、日志与大数据分析
- 业务日志、操作审计日志:写入 LogStore(字节自研日志存储,私有化可适配 ELK 方案),保留周期通常为两周;
- 数据统计、BI 报表、行为分析:采用 ClickHouse 等 OLAP 引擎,支撑海量数据的快速聚合分析。
八、客户端本地存储:SQLite
飞书桌面端、移动端的本地缓存、离线消息、本地索引,均采用嵌入式数据库 SQLite 实现,Web 端还通过 WASM 编译复用同一套 SQLite 逻辑,保证多端本地存储体验一致。
补充:选型核心逻辑
飞书的存储选型完全遵循「场景优先」原则,没有为了技术统一而强行用单一数据库:
- 强一致结构化业务 → 关系型数据库(MySQL);
- 高并发热点读写 → 缓存(Redis);
- 海量半结构化消息 → 分布式文档/列存;
- 全文检索 → 搜索引擎(Elasticsearch);
- 非结构化文件 → 对象存储;
- 客户端离线缓存 → 嵌入式数据库(SQLite)。
这种混合架构也是企业级 SaaS 系统的通用最佳实践,在保障性能与稳定性的同时,最大化控制长期存储成本。