2015-10-26 198 views
0

我想從mysql切換到mariadb,爲此,我導出舊的databeses並將它們導入到一個新的mariadb服務器,現在我遇到問題了,新導入的數據庫比原來小。mysqldump從mysql到mariadb - 數據庫大小差異

我做了以下:

  1. 創建的備份使用mysqldump從MySQL(mysqldump的 - 全數據庫--user =根--password --master數據> backupdatabase.sql)

  2. 它導入到一個新的maridb服務器(MySQL的ü根 - P < backupdatabase.sql)

如果想看到的,數據庫有多大,我看到以下內容:

在原始的MySQL服務器:

的MySQL> SELECT TABLE_SCHEMA 「數據庫」,總和(數據長度+ index_length)/ 1024/1024 「在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秒)

如果我現在做maraidb主機上是相同的:

MariaDB的[(無)]> SELECT TABLE_SCHEMA 「數據庫」,總和(數據長度+ 「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秒)

在哪裏可以之探源來自?這是我的失敗嗎?

回答

0

InnoDB和MySIAM(您可能使用的引擎之一)的MySQL和MariaDB存儲是相同的。此外,你可以通過在MySQL之上跺腳來安裝MariaDB,它可以與相同的文件數據庫一起工作。

你的問題最有可能來自這樣一個事實,即當你從頭開始創建一個表並插入所有行時,沒有碎片或空間浪費或任何東西。當你有一個活的服務器時,當你刪除行時,數據變得有些碎片化,有時甚至存儲「空白」空間並且不會將它返回給操作系統(InnoDB)。

試試這個,在MySQL中創建一個新的數據庫作爲DB1-test,並將轉儲導入它,然後比較DB1-test與MariaDB-DB1的大小,它應該一致。

0

Yor表未在MySQL服務器上優化。所以MySQL免費從未使用未使用的光盤空間。唯一能解放它的是Drop和創建一個Table。這是優化完成。另一件事是選項「每桌一個文件」。如果它將每個表的文件設置爲MySQL,並且可以通過優化來釋放磁盤空間,那麼您只有一個大文件。