幼儿园Tabledest的见解。

我正在尝试使用以下查询在 mysql 中复制一个表:

CREATE TABLE dest LIKE src;
INSERT INTO dest SELECT * FROM src;

Table dest 被创建并填充了来自 Table src 的记录。到目前为止,一切都很好。您会期望这两个表的大小大致相同。但是 Table dest 有 646M 而 Table src 只有 134M。在创建步骤之后,Table dest 为 48K,或多或少符合预期。

我做了以下操作,看看是否有帮助,但无济于事:

ALTER TABLE dest ROW_FORMAT=COMPRESSED;
OPTIMIZE TABLE dest;

这是 SHOW CREATE TABLE src:

CREATE TABLE `src` (
  `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `post_id` bigint(20) unsigned NOT NULL DEFAULT '0',
  `meta_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `meta_value` longtext COLLATE utf8mb4_unicode_ci,
  PRIMARY KEY (`meta_id`),
  KEY `post_id` (`post_id`),
  KEY `meta_key` (`meta_key`(191))
) ENGINE=InnoDB AUTO_INCREMENT=6046271 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

两个问题:

这种意外行为的原因是什么?有什么办法可以让 Table dest 变小吗?

感谢您的洞察力。

© 版权声明
THE END
喜欢就支持一下吧
点赞58赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容