MySQL 存储引擎 API

🔹 1、表操作相关 API

MySQL 存储引擎 API,也就是 服务层 和 存储引擎 之间的"接口"。MySQL 采用 插件式存储引擎架构,SQL 层不关心底层数据怎么存,它只通过一组 统一的 API 去和存储引擎交互。不同引擎只要实现这些 API,就能接入 MySQL。


🔹 2、表操作相关 API

这些是"开门关门"的动作:

  • open():打开一张表(就像管理员把书库的门打开)。
  • close():关闭表(把门锁上)。
  • create():创建表(在书库里加新架子)。
  • delete_table():删除表(把架子拆掉)。
  • rename_table():表重命名。

👉 这类 API 定义了表的生命周期。


🔹3、数据读写相关 API

这些是真正"搬书"的接口:

  • write_row():插入一行数据。
  • update_row():更新一行数据。
  • delete_row():删除一行数据。
  • rnd_init() / rnd_next():顺序读取(像从头到尾翻阅整个书架)。
  • rnd_pos():根据某个位置直接取一行。
  • position():获取当前行的位置。

👉 这类 API 解决"数据怎么读写"。


🔹 4、索引操作相关 API

有索引时,就像图书馆的"卡片目录":

  • index_init() / index_end():初始化/结束索引扫描。
  • index_read():用索引精确查找(比如找"鲁迅")。
  • index_next() / index_prev():通过索引向前/向后取下一行。
  • index_first() / index_last():通过索引定位到第一条/最后一条记录。

👉 没有索引就全表扫描,有索引就能更快定位。


🔹 5、事务与锁相关 API

如果引擎支持事务,就要实现这些:

  • external_lock():给表加锁/解锁。
  • start_stmt():事务语句开始。
  • commit():提交事务。
  • rollback():回滚事务。
  • savepoint() / rollback_to_savepoint():保存点和回滚到保存点。

👉 InnoDB 就支持这些,MyISAM 不支持。


🔹 6、信息和统计相关 API

给 SQL 层"打报告"的接口:

  • info():报告引擎能力(比如支持事务吗?支持外键吗?)。
  • records():统计表的行数。
  • records_in_range():统计某个范围的记录数。
  • extra():做一些额外操作(比如优化器的提示)。

🔹 7、其他辅助 API

  • init() / shutdown():初始化/关闭存储引擎。
  • slot():存储引擎在 MySQL 内部的"插件槽"。

📚 总结类比(图书馆版)

  • 表操作 API:建书架、拆书架、改名字。
  • 数据读写 API:往书架放书、拿书、改书。
  • 索引 API:用卡片目录找书。
  • 事务与锁 API:保证借书/还书要么全成功,要么全失败。
  • 统计信息 API:告诉管理员"馆里有多少书"、"哪一排书多"。

👉 这些 API 一起构成了 MySQL 存储引擎插件接口,SQL 层只跟 API 打交道,不关心 InnoDB/MyISAM 内部实现。


相关推荐
刺客-Andy29 分钟前
Python 第二十节 正则表达式使用详解及注意事项
python·mysql·正则表达式
哈__42 分钟前
MongoDB 平替新方案:金仓多模数据库驱动电子证照国产化落地
数据库·1024程序员节
微学AI1 小时前
国产数据库替代MongoDB的技术实践过程:金仓多模数据库在电子证照系统中的深度应用
数据库·人工智能·1024程序员节
TDengine (老段)2 小时前
TDengine 数据函数 ROUND 用户手册
java·大数据·数据库·物联网·时序数据库·tdengine·1024程序员节
TDengine (老段)2 小时前
TDengine 数学函数 RAND 用户手册
java·大数据·数据库·物联网·时序数据库·tdengine·涛思数据
野犬寒鸦2 小时前
从零起步学习MySQL || 第十章:深入了解B+树及B+树的性能优势(结合底层数据结构与数据库设计深度解析)
java·数据库·后端·mysql·1024程序员节
GZ_TOGOGO2 小时前
Oracle OCP考试报名常见问题详解
数据库·oracle·ocp认证
睡不醒的猪儿2 小时前
nginx日志同步阿里云datahub后写入数据库
数据库·nginx·阿里云
xie_zhr2 小时前
【PB案例学习笔记】-46在数据窗口中编辑数据
数据库·his·1024程序员节·干货分享·pb·powerbuilder
小小的木头人3 小时前
Redis 集群安装指南
数据库·redis