📌  相关文章
📜  innodb 页面大小更改 (1)

📅  最后修改于: 2023-12-03 15:31:24.671000             🧑  作者: Mango

Innodb 页面大小更改

InnoDB是MySQL中最受欢迎的存储引擎之一,它是一个事务性、崩溃恢复、多版本并发控制等功能的存储引擎。InnoDB使用页面来组织数据,页面大小通常可以在编译MySQL时确定。但是,自MySQL5.7.6版本以来,InnoDB消息支持动态页面大小修改,允许使用者在不重新编译的情况下更改页面大小。本文将介绍如何更改InnoDB的页面大小。

什么是InnoDB页面大小?

InnoDB使用页面来存储数据,一个页面通常包含16KB的数据,也可以使用32KB或者64KB的页面大小,页面大小由编译参数确定。

动态页面大小更改
  • 将innodb_page_size设置为新的页面大小
  • 删除数据目录中的.ibd文件
  • 重建表
步骤1 - 将innodb_page_size设置为新的页面大小

在MySQL配置文件中,将innodb_page_size设置为新的页面大小,例如:

[mysqld]
innodb_page_size=32k
步骤2 - 删除数据目录中的.ibd文件

InnoDB使用.ibd文件存储表数据和索引,因此在更改页面大小之前,需要删除旧的.ibd文件。在MySQL启动之前,可以使用以下命令删除:

rm /path/to/datadir/*.ibd
步骤3 - 重建表

重建表会创建新的.ibd文件,并使用新的页面大小。可以使用以下命令重建表:

alter table mytable engine=InnoDB;
如何确定当前页面大小

可以通过以下方式确定当前使用的页面大小:

  1. 登录到MySQL服务器。
  2. 运行以下命令:
SHOW VARIABLES LIKE 'innodb_page_size';
总结

在MySQL5.7.6版本以后,InnoDB支持动态页面大小更改,这使得使用者可以在不重新编译的情况下更改页面大小。更改页面大小需要删除旧的.ibd文件并重建表。可以通过运行SHOW VARIABLES LIKE 'innodb_page_size';命令来确定当前使用的页面大小。