跳转至

快手聊天数据库结构详解

本文档不保证内容完全正确,个人精力有限,如果你认为该页面有错误或写的不行欢迎发起issues和提交pr更正

数据库基本信息

  • 数据库类型:SQLite 3
  • 文件大小:通常几MB到几十MB(取决于聊天频率)
  • 字符编码:UTF8
  • 时间:毫秒级时间戳

imsdk.db 数据库表结构说明

以下表格按照数据库默认排序(字母顺序)排列。

1. 表结构速查 (按原序排列)

序号 表名 (Table Name) 类型 功能说明 建议
1 android_metadata 系统 安卓系统生成的元数据表(如本地化信息) ❌ 忽略
2 fts_kwai_message 索引 全文搜索虚拟表 (Full-Text Search) 主表 ❌ 忽略
3 fts_kwai_message_content 索引 全文搜索内容数据 ❌ 忽略
4 fts_kwai_message_docsize 索引 全文搜索相关 ❌ 忽略
5 fts_kwai_message_segdir 索引 全文搜索相关 ❌ 忽略
6 fts_kwai_message_segments 索引 全文搜索相关 ❌ 忽略
7 fts_kwai_message_stat 索引 全文搜索相关 ❌ 忽略
8 ktv_data 键值 键值KV数据表,暂不知用处 ❌ 忽略
9 kwai_attachment 附件 附件表,目前来看只有一堆表情的链接 ❌ 忽略
10 kwai_conversation 核心 会话列表。记录你和谁聊过天、最后一条消息、未读数。 ⭐⭐ 核心
11 kwai_conversation_tag 辅助 会话标签,实际上无数据,不知用处 ❌ 忽略
12 kwai_group_info 群组 群信息。存储群名称、群公告、群主 ID。 ⭐ 重要
13 kwai_group_member 群组 群成员。存储群内成员列表及群昵称。 ⭐ 重要
14 kwai_gruop_msg_read_info 状态 群消息已读回执。(注意:官方拼写错误 gruop) ❌ 忽略
15 kwai_message 核心 消息内容表。存储所有聊天记录详情。 ⭐⭐⭐ 核心
16 kwai_receipt 状态 消息回执(无数据) ❌ 忽略
17 kwai_retry 队列 消息发送失败重试队列。 ❌ 忽略
18 supplement_msg_range 同步 消息补全范围,用于客户端与服务器同步数据。 ❌ 忽略

2. 详细功能解析 (按重要性)

按照优先级排序如下:

🟢 核心数据

1. kwai_message (序号 15)

  • 这是整个数据库的灵魂
  • 用途:存储每一条消息

2. kwai_conversation (序号 10) * 这是你的“消息列表” * 用途:获取所有聊过天的人或群


🟡 完善体验数据

. kwai_group_info & kwai_group_member (序号 12, 13) * 用途:用于处理群聊 * 场景:在 kwai_message 表里,群聊消息只显示发送者的 ID(一串数字)
需要通过关联 kwai_group_member 表,才能把这串数字变成群昵称


🔴 冗余/系统数据 (忽略即可)

1. fts_kwai_message... 系列 (序号 2-7) * 解释:FTS = Full-Text Search。这是 SQLite 自带的全文搜索扩展表。 * 为什么忽略:这些表里的数据是 kwai_message 的重复备份,搜索用的,无视即可

2. kwai_attachment (序号 9) * 用途:快手黄豆表情包的链接,没什么大用处。

2. kwai_gruop_msg_read_info (序号 14) * 用途:群聊消息已读信息,没什么价值 * 趣闻:这是一个快手开发者的拼写错误彩蛋,group 被拼成了 gruop

3.如果要详细解析每个表的字段信息,请看 数据表字段说明