mysql 表空间大小_调整InnoDB系统表空间大小

文章目录

[隐藏]

增大InnoDB system tablespace

缩小InnoDB system tablespace

增大InnoDB system tablespace

最简单的增大InnoDB system tablespace大小的方法是在一开始配置的时候就指定为自动扩展. 为innodb_data_file_path参数中的最后一个数据文件指定autoextend选项. InnoDB在空间不足时以64MB为单位自动增加该文件的大小. 可以通过设置innodb_autoextend_increment系统变量的值(以兆字节为单位)来更改增量大小.

您可以通过添加另一个数据文件来扩展系统表空间:

1.关闭MySQL

2.如果上一个数据文件是使用关键字autoextend定义的,则根据实际增长的大小将其定义更改为使用固定大小. 检查数据文件的大小,将其舍入到1024×1024字节(= 1MB)的最接近的倍数,并在innodb_data_file_path中显式指定舍入后的大小.

3.将新的数据文件添加到innodb_data_file_path的末尾,可以指定该文件为自动扩展. 注意,只能将innodb_data_file_path中的最后一个数据文件指定为自动扩展.

4.启动MySQL

实际例子:

初始只有一个ibdata1,现在我们想增加一个数据文件

innodb_data_home_dir = innodb_data_file_path = /ibdata/ibdata1:10M:autoextend

假设ibdata1此时已经增长到988M,那么修改配置为

innodb_data_home_dir = innodb_data_file_path = /ibdata/ibdata1:988M;/disk2/ibdata2:50M:autoextend

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
} } } else { cout << "用户名或密码错误,请重新输入!" << endl; } break; 查询 MySQL 表空间大小的 SQL 语句: ``` SELECT table_schema AS `Database`, table_name AS `Table`, } case 2: { // 顾客 int subChoice; while (true) { cout << round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` FROM "欢迎,顾客!" << endl; cout << "1. 查看菜单" << endl; cout << "2 information_schema.TABLES ORDER BY (data_length + index_length) DESC; ``` 调整 MySQL 表空间大小的 SQL 语. 下单" << endl; cout << "3. 查看订单历史记录" << endl; cout << "4.句: 1. 增加表空间大小: ``` ALTER TABLE table_name ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE 退出登录" << endl; cout << "请选择: "; cin >> subChoice; switch (subChoice) { =8; ``` 其中,table_name 是需要调整表空间大小的表名。 2. 减少表空间大小 case 1: { string sql = "SELECT * FROM menu"; MYSQL_RES *result = NULL; MYSQL_ROW row; : MySQL 不支持直接减少表空间大小的操作,但可以通过以下步骤实现: - 备份数据 if (mysql_query(&mysql, sql.c_str())) { cout << "查询菜单失败: " << mysql_error(&mysql; - 删除表; - 重新创建表并导入数据; - 对表进行优化。 例如: ``` CREATE TABLE new) << endl; } else { result = mysql_store_result(&mysql); if (result) { cout << "菜_table LIKE old_table; INSERT INTO new_table SELECT * FROM old_table; ALTER TABLE new_table ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY品编号\t菜品名称\t菜品价格\t菜品描述" << endl; while ((row = mysql_fetch_row(result)))_BLOCK_SIZE=8; ANALYZE TABLE new_table; RENAME TABLE old_table TO old_table_backup, new_table TO old_table; { cout << row[0] << "\t\t" << row[1] << "\t\t" << row[2] <<DROP TABLE old_table_backup; ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值