我正在尝试使用以下查询在 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 变小吗?
感谢您的洞察力。
© 版权声明
本站下载的源码均来自公开网络收集转发二次开发而来,
若侵犯了您的合法权益,请来信通知我们1413333033@qq.com,
我们会及时删除,给您带来的不便,我们深表歉意。
下载用户仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,访问及下载者下载默认同意本站声明的免责申明,请合理使用切勿商用。
THE END
暂无评论内容