首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysqldump从mysql到mariadb -数据库大小的差异

Mysqldump从mysql到mariadb -数据库大小的差异
EN

Stack Overflow用户
提问于 2015-10-26 19:32:02
回答 2查看 1.3K关注 0票数 1

我想从mysql切换到mariadb,为此,我导出了旧数据库并将它们导入到一个新的mariadb服务器,现在我遇到了一个问题,即新导入的数据库比原来的要小。

我做了以下工作:

  1. 用mysqldump从mysql创建备份(mysqldump -所有数据库-user=root-密码-主数据> backupdatabase.sql)
  2. 将其导入到新的maridb服务器(mysql -u root -p < backupdatabase.sql)

如果在想查看数据库有多大,我会看到以下内容:

原始mysql服务器上的

mysql>通过table_schema从information_schema.TABLES组中选择table_schema“数据库”、sum(data_length + index_length)/1024/1024“MB大小”;

数据库大小( MB )

DB-1 \x{e76f} 0.40625000

DB-2 \x{e76f} 4.09375000 x

DB-3 \x{e76f} 506.60937500 x

设置6行(0.90秒)

如果我现在在maraidb主机上做同样的操作:

MariaDB (无)>选择table_schema“数据库”、sum(data_length + index_length)/1024/1024 /1024/1024“MB大小”,由table_schema从information_schema.TABLES组中选择;

数据库大小( MB )

DB-1 \x{e76f} 0.39062500 x

DB-2 \x{e76f} 3.03125000 x

DB-3 \x{e76f} 416.39062500 x

设置6行(0.09秒)

这种区别从何而来?这是我的失败吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-26 19:51:47

MySQL和MariaDB存储InnoDB和MySIAM (您可能使用的引擎之一)是相同的。此外,您可以通过在MariaDB的基础上踩下它来安装MySQL,它将与相同的文件数据库一起工作。

您的问题很可能来自这样一个事实:当您从头创建一个表并插入所有行时,没有任何碎片或空间浪费。当您有一个活动服务器时,当您删除行时,数据变得有点零碎,有时它甚至存储“空”空间,并且不将其返回给OS (InnoDB)。

尝试这样做,在MySQL中创建一个新的数据库作为DB1-测试并将转储导入其中,然后比较DB1-测试大小与MariaDB-DB1的大小,并且应该是一致的。

票数 0
EN

Stack Overflow用户

发布于 2015-10-26 19:36:52

您的表在MySQL服务器上没有优化。因此,MySQL免费,永不未使用的磁盘空间。释放它的唯一方法是删除并创建一个表。这就是优化所做的。另一件事是选项“每个表一个文件”。如果它将MySQL设置为每个表上的文件,并且有可能通过优化释放磁盘空间,那么您只有一个大文件。

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

https://stackoverflow.com/questions/33354062

复制
相关文章

相似问题

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