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的过程。
➡️

继续阅读