TiDB 源码阅读(三):插入数据
💡
原文中文,约12400字,阅读约需30分钟。
📝
内容提要
本文分析了TiDB执行INSERT语句的过程,包括解析、编译和执行等步骤。INSERT操作涉及构建执行器、处理数据编码和生成键值对,最终将数据写入TiKV。文章详细介绍了记录键和索引键的编码格式及相关代码位置。
🎯
关键要点
- 本文分析了TiDB执行INSERT语句的过程,包括解析、编译和执行等步骤。
- INSERT操作涉及构建执行器、处理数据编码和生成键值对,最终将数据写入TiKV。
- 简单的INSERT语句执行流程较为简化,逻辑计划优化和物理计划优化不多。
- INSERT语句的执行流程包括handleQuery、ExecuteStmt、ExecStmt.Exec等步骤。
- InsertExec负责执行INSERT操作,涉及到数据的准备和写入。
- Record Key的编码格式为t{tableID}_r{rowID},包含表前缀、表ID和行ID。
- 索引Key的编码格式分为非唯一索引和唯一索引,包含表前缀、表ID、索引ID和索引列值。
- 文章提供了完整的示例,展示了INSERT语句的执行及生成的KV对。
- 关键编码函数包括生成Record Key、Index Key和Index Value的函数。
- 总结了INSERT语句的调用链及数据编码保存到TiKV的过程。
➡️