首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql 8表大小

Mysql 8表大小
EN

Database Administration用户
提问于 2021-05-05 11:44:08
回答 1查看 45关注 0票数 0

我们在服务器上有一个不合理的大表大小问题,例如:

昨天,创建了一个带有分区的表,开始将数据写入特定的分区。

代码语言:javascript
复制
mysql> show table status like 'in_followers_bots_p'\G
*************************** 1. row ***************************
           Name: in_followers_bots_p
         Engine: InnoDB
        Version: 10
     Row_format: Dynamic
           Rows: 38517
 Avg_row_length: 73
    Data_length: 2818048
Max_data_length: 0
   Index_length: 1589248
      Data_free: 4194304
 Auto_increment: NULL
    Create_time: 2021-05-04 14:58:32
    Update_time: 2021-05-04 14:59:45
     Check_time: NULL
      Collation: utf8mb4_unicode_ci
       Checksum: NULL
 Create_options: partitioned
        Comment: 

但是与此同时,磁盘3.7G上这个表(分区)的大小

-rw-r----- 1 mysql mysql 3.7G May 5 12:29 in_followers_bots_p#p#p05.ibd

mysql Ver 8.0.20

Centos 8

这个问题在许多表格中都有观察到,请告诉我这个问题的原因以及是否有解决办法。我很乐意提供所有必要的信息。

UPD

代码语言:javascript
复制
mysql> SHOW CREATE TABLE in_followers_bots_p\G
*************************** 1. row ***************************
       Table: in_followers_bots_p
Create Table: CREATE TABLE `in_followers_bots_p` (
  `owner_id` bigint unsigned NOT NULL DEFAULT '0',
  `bot_id` bigint unsigned NOT NULL DEFAULT '0',
  `month_id` tinyint NOT NULL,
  PRIMARY KEY (`bot_id`,`owner_id`,`month_id`),
  KEY `in_followers_bots_owner_id_index` (`owner_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
/*!50100 PARTITION BY RANGE (`month_id`)
(PARTITION p01 VALUES LESS THAN (2) ENGINE = InnoDB,
 PARTITION p02 VALUES LESS THAN (3) ENGINE = InnoDB,
 PARTITION p03 VALUES LESS THAN (4) ENGINE = InnoDB,
 PARTITION p04 VALUES LESS THAN (5) ENGINE = InnoDB,
 PARTITION p05 VALUES LESS THAN (6) ENGINE = InnoDB,
 PARTITION p06 VALUES LESS THAN (7) ENGINE = InnoDB,
 PARTITION p07 VALUES LESS THAN (8) ENGINE = InnoDB,
 PARTITION p08 VALUES LESS THAN (9) ENGINE = InnoDB,
 PARTITION p09 VALUES LESS THAN (10) ENGINE = InnoDB,
 PARTITION p10 VALUES LESS THAN (11) ENGINE = InnoDB,
 PARTITION p11 VALUES LESS THAN (12) ENGINE = InnoDB,
 PARTITION p12 VALUES LESS THAN (13) ENGINE = InnoDB) */```
EN

回答 1

Database Administration用户

回答已采纳

发布于 2021-05-26 12:46:15

通过将数据传输到带有参数ROW_FORMAT=COMPRESSED的分区表中,解决了这个问题。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/291029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档