InnoDB 怎么记

默认引擎按 InnoDB 来想。MyISAM 只在特定只读或临时场景出现,新系统不要默认选它。

内存与磁盘

  • Buffer Pool:数据和索引页
  • Change Buffer:次级索引的延迟维护
  • Redo log:崩溃恢复
  • Undo:回滚和一致性读
  • 表空间:系统表空间、独立表空间、undo tablespace
SHOW ENGINE INNODB STATUS\G
SELECT @@innodb_buffer_pool_size, @@innodb_log_file_size, @@innodb_flush_method;

库名、表名示例:shop_app.orders

行从哪来

InnoDB 主键就是聚簇索引。没有显式主键时会生成隐藏 row_id。二级索引叶子带主键值,所以主键过长会放大所有二级索引。

崩溃恢复在做什么

重启时用 redo 把已提交的改回来,用 undo 把没提交的撤掉。redo 盘慢或刷盘策略过松,故障窗口会变长。

注意

innodb_buffer_pool_size 通常是最大的内存旋钮,但不要吃光操作系统。监控用 Innodb_buffer_pool_reads 和命中相关状态,而不是只看参数绝对值。

参考:InnoDB Storage Engine