mysqldump und COMPRESS()"ed felder
am 10.03.2006 09:49:47 von Igor Fedorow
einen schoenen guten morgen in die runde.
frage an euch mysql-experten:
ich halte jeweils etwa 10k-grosse strings in einem feld vom typ TEXT in
einer innodb-tabelle. damit sich das ganze nicht so aufblaest (und weil
ich's ja nur eher selten auslese) habe ich die strings mittels
COMPRESS() komprimiert. das auspacken funzt mit UNCOMPRESS() auch
wunderbar -- so weit so gut.
zu backup-zwecken mache ich nun einen mysqldump von der tabelle. wenn
ich diesen dump dann wieder einspiele liefert mit UNCOMPRESS()
allerdings nicht den unkomprimierten string sondern NULL. was mache ich
falsch? ich kann mir kaum vorstellen dass man mit COMPRESS()
komprimierte strings nicht ordentlich dumpen kann.
besten dank im voraus fuer eure hilfe & cheers =)
igor
Re: mysqldump und COMPRESS()"ed felder
am 10.03.2006 12:40:01 von Johannes Vogel
Hi Igor
Igor Fedorow wrote:
> ich halte jeweils etwa 10k-grosse strings in einem feld vom typ TEXT in
> einer innodb-tabelle. damit sich das ganze nicht so aufblaest (und weil
> ich's ja nur eher selten auslese) habe ich die strings mittels
> COMPRESS() komprimiert. das auspacken funzt mit UNCOMPRESS() auch
> wunderbar -- so weit so gut.
> zu backup-zwecken mache ich nun einen mysqldump von der tabelle. wenn
> ich diesen dump dann wieder einspiele liefert mit UNCOMPRESS()
> allerdings nicht den unkomprimierten string sondern NULL. was mache ich
> falsch? ich kann mir kaum vorstellen dass man mit COMPRESS()
> komprimierte strings nicht ordentlich dumpen kann.
Ich hab keine Ahnung, aber man kann sich ja selbst etwas fortbilden. Im
Manual lese ich in Chapter 12.9.2 (5.0) zum Befehl COMPRESS():
(Use of CHAR or VARCHAR to store compressed strings is not recommended.
It is better to use a BLOB column instead.)
Das wäre zumindest ein Ansatz.
Ich geh davon aus, dass du auf derselben Maschine das Backup wieder
eingelesen hast und immer zlib installiert hast?
Ansonsten könnte ich mir noch Probleme mit Zeichensätzen vorstellen.
Wie gesagt: Keine Ahnung, aber vielleicht den einen oder anderen Ansatz?
HTH, Johannes
Re: mysqldump und COMPRESS()"ed felder
am 10.03.2006 13:15:59 von Igor Fedorow
besagte stelle im manual habe ich gelesen; da dort allerdings nur
ausdruecklich die rede von CHAR und VARCHAR spalten ist habe ich das
nicht auf mein problem bezogen.
der unterschied zwischen TEXT und BLOB besteht laut abschnitt 11.4.3.
darin dass bei letzterm die strings als binary und nicht als character
behandelt werden; vielleicht liegt ja da dann auch der hund begraben.
ich werd's mal testen und die spalten auf BLOB umstellen -- samt
rueckmeldung ob's geklappt hat.
danke jedenfalls fuer die antwort!
cheers =)
igor
Re: mysqldump und COMPRESS()"ed felder
am 10.03.2006 13:20:22 von Axel Schwenke
"Igor Fedorow" wrote:
>
> ich halte jeweils etwa 10k-grosse strings in einem feld vom typ TEXT
~~~~
> zu backup-zwecken mache ich nun einen mysqldump von der tabelle. wenn
> ich diesen dump dann wieder einspiele liefert mit UNCOMPRESS()
> allerdings nicht den unkomprimierten string sondern NULL.
Es könnte sein, daß du statt TEXT besser BLOB verwenden solltest.
XL