首页 文章

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

提问于
浏览
0

我想从mysql切换到mariadb,为此,我导出旧的数据库并将它们导入到新的mariadb服务器,现在我有问题,新导入的数据库小于原始数据库 .

我做了以下事情:

  • 使用mysql中的mysqldump创建备份(mysqldump --all-databases --user = root --password --master-data> backupdatabase.sql)

  • 将其导入到新的maridb-server(mysql -u root -p <backupdatabase.sql)

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

On the original mysql-server:

mysql> SELECT table_schema“database”,sum(data_length index_length)/ 1024/1024“size in MB”FROM information_schema.TABLES GROUP BY table_schema;

|数据库|大小以MB为单位

| DB-1 | 0.40625000

| DB-2 | 4.09375000 |

| DB-3 | 506.60937500 |

6行(0.90秒)

If i do now the same on the maraidb host:

MariaDB [(无)]> SELECT table_schema“database”,sum(data_length index_length)/ 1024/1024“size in MB”FROM information_schema.TABLES GROUP BY table_schema;

|数据库|大小以MB为单位

| DB-1 | 0.39062500 |

| DB-2 | 3.03125000 |

| DB-3 | 416.39062500 |

6行(0.09秒)

差异来自哪里?这是我的失败吗?

2 回答

  • 0

    InnoDB和MySIAM(您可能正在使用的引擎之一)的MySQL和MariaDB存储是完全相同的 . 此外,您可以通过在MySQL之上踩踏它来安装MariaDB,它将使用相同的文件数据库 .

    您的问题很可能来自这样一个事实:当您从头开始创建一个表并插入所有行时,没有碎片或空间浪费或任何东西 . 当你有一个实时服务器时,当你删除行时,数据会变得有些碎片化,有时甚至会存储“空”空间而不会将其返回给操作系统(InnoDB) .

    试试这个,在MySQL中创建一个新的数据库作为DB1-test并将转储导入其中,然后将DB1测试大小与MariaDB-DB1进行比较,它应该重合 .

  • 0

    Yor表未在MySQL服务器上进行优化 . 所以MySQL免费从未使用过Disc Space . 唯一要释放它的是删除并创建一个表 . 这就是优化所做的 . 另一件事是“每桌一个文件”选项 . 如果它在每个表上设置MySQL使用文件,并且可以通过Optimize else释放磁盘空间,那么你只有一个大文件 .

相关问题