📅  最后修改于: 2023-12-03 15:31:24.671000             🧑  作者: Mango
InnoDB是MySQL中最受欢迎的存储引擎之一,它是一个事务性、崩溃恢复、多版本并发控制等功能的存储引擎。InnoDB使用页面来组织数据,页面大小通常可以在编译MySQL时确定。但是,自MySQL5.7.6版本以来,InnoDB消息支持动态页面大小修改,允许使用者在不重新编译的情况下更改页面大小。本文将介绍如何更改InnoDB的页面大小。
InnoDB使用页面来存储数据,一个页面通常包含16KB的数据,也可以使用32KB或者64KB的页面大小,页面大小由编译参数确定。
在MySQL配置文件中,将innodb_page_size设置为新的页面大小,例如:
[mysqld]
innodb_page_size=32k
InnoDB使用.ibd文件存储表数据和索引,因此在更改页面大小之前,需要删除旧的.ibd文件。在MySQL启动之前,可以使用以下命令删除:
rm /path/to/datadir/*.ibd
重建表会创建新的.ibd文件,并使用新的页面大小。可以使用以下命令重建表:
alter table mytable engine=InnoDB;
可以通过以下方式确定当前使用的页面大小:
SHOW VARIABLES LIKE 'innodb_page_size';
在MySQL5.7.6版本以后,InnoDB支持动态页面大小更改,这使得使用者可以在不重新编译的情况下更改页面大小。更改页面大小需要删除旧的.ibd文件并重建表。可以通过运行SHOW VARIABLES LIKE 'innodb_page_size';命令来确定当前使用的页面大小。