2016-11-11 4 views
0

Szenario:Warum mysqldump so groß wird?

MySQL-Datenbank mit meist MyISAM-Tabellen. Aktuelles Gewicht von MySQL-Dateisystem:

80K ./casin_emails 
212K ./performance_schema 
371M ./casin_info 
32K ./percona 
572K ./casin 
1.1M ./mysql 
67G . 

wie bemerkt, dass Sie die meisten Platz von ibdata Dateien kommen

17956960 67G -rw-rw---- 1 mysql mysql 67G Nov 11 11:45 ibdata1 
17956940 5.0M -rw-rw---- 1 mysql mysql 5.0M Nov 11 11:45 ib_logfile0 
17956939 5.0M -rw-rw---- 1 mysql mysql 5.0M Nov 11 10:44 ib_logfile1 

im Moment des Schreib dieser Frage der noch laufende Prozess der mysqldump eine Datei von 14 zu schreiben GBytes.

Also meine Frage ist vielleicht offensichtlich. Warum erstellt mysqldump eine so große Datei, wenn die aktuellen Bereiche von Datenbanken so klein sind? Ist ibdata schuldig?

Ich denke, ich kann die Tatsache nicht vermeiden, dass mysqldump eine Art Sicherung der Daten auf ibadata generieren muss, aber ich will nur sicher sein und wissen, warum das passiert.

Danke!

PS: Ich habe zuvor über diese Frage gesucht, aber alle Posts, die ich gefunden habe, waren darüber, wie Datenbanken zu verkleinern, die nicht meine aktuelle Frage sind.

+1

Dieser Link könnte hilfreich sein https://www.percona.com/blog/2013/08/20/why-is-the-ibdata1-file-continuous-growing-in-mysql/ – Samir

+1

'mysqldump' generiert SQL Abfragen, die aufgrund der Art der SQL-Sprache ausführlich sind. – axiac

Antwort

2

Wie MySQL-Dokumentation auf mysqldump sagt (Hervorhebung von mir):

Die mysqldump-Client-Dienstprogramm logische Sicherungen durchführt, einen Satz von SQL-Anweisungen Herstellung, die die ursprünglichen Datenbankobjektdefinitionen zu reproduzieren ausgeführt werden können und Tabellendaten

So exportiert mysqldump die Daten nicht einfach, sondern fügt sie in SQL-Anweisungen ein. Darüber hinaus werden alle Daten als Text exportiert, so dass alle numerischen Daten und Nullen viel mehr Platz benötigen als in der Datenbank.

+0

Ich verstehe alle Ihre Punkte, aber wenn mysqldump macht ** "Satz von SQL-Anweisungen" **, wenn die Größe der Datenbanken ist 371M die schwerste (./casin_info) ... ist alle Daten in Bezug auf diese SQL-Anweisungen? Oder hat Ibdata darüber auch zu sagen? Weil ich immer noch nicht verstehe, wie eine kleine Datenbank (300 M) oder weniger eine .sql-Datei von Gb Größe erzeugen kann. Ich weiß nicht, ob Sie meinen Punkt hier sehen ... – Rubendob

+0

ibdata1 ist der Standarddateiname für den innodb-Tabellenbereich, so dass alle Daten in den innodb -Tabellen enthalten wären. – Shadow