表压缩(innodb)

1.所有节点修改参数先
vim /home/mysql/conf/s01.cnf
vim /home/mysql/conf/s02.cnf
#compress
innodb_file_format=Barracuda
innodb_file_per_table=1


mysql> set global innodb_file_format=Barracuda;
mysql> SET GLOBAL innodb_file_per_table=1;
check:
mysql> show variables like 'innodb_file%';


2.检查状态(主)
use bdzh;
mysql> show table status like 'dim_image'\G
 Row_format: Compact --未压缩


3.压缩表在线操作(主)
mysql> alter table dim_image key_block_size=8 row_format=compressed;


4.检查是否压缩( 主备)
mysql> show table status like 'dim_image'\G
 Row_format: Compressed --压缩了


1.6g的表压缩到了1.2g。用时<2min。实际使用效率待测试.
### MySQL 压缩及页压缩配置 #### 什么是压缩? 在数据库管理中,压缩是一种优化技术,用于减少存储空间需求并提高查询性能。对于 InnoDB 存储引擎,MySQL 提供了页面级的数据压缩功能[^1]。 #### 实现压缩的方法 要启用压缩,可以通过创建新或将现有转换为支持压缩的格式来完成。以下是具体操作: 1. **通过 `CREATE TABLE` 创建带压缩选项的新** 使用 `ROW_FORMAT=COMPRESSED` 和指定键值大小(如 `KEY_BLOCK_SIZE`),可以定义新的压缩。 ```sql CREATE TABLE compressed_table ( id INT PRIMARY KEY, data VARCHAR(255) ) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; ``` 这里设置了 `ROW_FORMAT=COMPRESSED` 并指定了 `KEY_BLOCK_SIZE=8` 来控制索引数据块的压缩级别。 2. **通过 `ALTER TABLE` 将现有转换为压缩格式** 如果已有未压缩,则可通过修改其结构将其转换为压缩模式。 ```sql ALTER TABLE existing_table ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; ``` 此命令会重新组织中的数据以适应压缩设置,并可能涉及短暂的服务中断或锁定期间。 #### 配置 my.ini 文件支持压缩 为了使上述压缩特性生效,在安装过程中需正确调整 MySQL 的全局参数文件 (`my.ini`) 中的相关条目。例如,确保启用了必要的插件和服务端变量。 - 打开 `my.ini` 文件找到 `[mysqld]` 节点下添加如下内容: ``` innodb_file_per_table=ON -- 每张单独存放在独立.ibd文件中以便于管理和维护 innodb_file_format=Barracuda-- 改变默认格式允许使用更高级别的行格式包括 COMPACT REDUNDANT DYNAMIC COMPRESSED四种之一 ``` - 完成编辑保存后重启服务让更改立即起作用。 注意:以上提到的所有变更均假设当前环境已满足最低版本要求 (即至少为 MySQL 5.7),因为早期发行版未必完全兼容这些增强型特征。 ```sql SHOW VARIABLES LIKE 'innodb_file%'; ``` 运行此 SQL 查询可以帮助确认系统状态是否符合预期设定标准。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值