Announcement

Collapse
No announcement yet.

Speicherplatzbedarf (DB) verdoppelt nach Umstellung auf MySQL5 / utf-8 ?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Speicherplatzbedarf (DB) verdoppelt nach Umstellung auf MySQL5 / utf-8 ?

    Hallo zusammen,

    nach der Umstellung einer MyQSL-Datenbank (4.1, MyISAM, latin1 --> 5.5, MyISAM, utf-8) benötigen die Daten jetzt auf der Festplatte statt 23 GB --> 66 GB Speicherplatz!
    Ok, utf-8 speichert 2 Byte statt wie latin 1 Byte, aber diese massive Vergrößerung kommt mir komisch vor. Woran kann das liegen? Und kann ich die Tabellen irgendwie komprimieren,
    ohne dass die Zugriffsmöglichkeiten eingeschränkt sind?

    Danke im Voraus....

  • #2
    Das stimmt nicht, bei UTF-8 ist ein Zeichen zwischen 1 und 4 Byte lang.

    Gruss

    Comment


    • #3
      utf8 speichert nicht 2 Byte sondern zwischen 1 und 4 Byte. Und wenn deine Datenbank auch bisher gut mit einem 1Byte Encoding klar gekommen ist wird die Umkodierung diesen Inhalts im Schnitt auch nicht viel mehr als 1Byte pro Zeichen brauchen.
      Du solltest vielleicht mal nachschauen welche Datenbankentität denn jetzt mehr Platz braucht als vorher und dann gezielter nach der Ursache suchen(bin kein mysql Experte aber mysql sollte Möglichkeiten bieten wie Platzverbrauch pro Tabelle, Index, Spalte, Objekt etc. zu liefern)

      Comment


      • #4
        Wir reden hier von mysql, da ist einiges anders...

        http://www.adayinthelifeof.nl/2010/1...elds-in-mysql/
        Ganz so unschuldig ist die UTF-8 Umstellung nicht, vermutlich benötigen die Indizes jetzt deutlich mehr Platz.
        Zitat Tom Kyte:
        I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

        Comment


        • #5
          @dimitri: der Artikel ist sehr hilfreich; ich werde mal die VARCHAR()-Felder ersetzen und schauen, ob sich was tut...

          Comment


          • #6
            Originally posted by lichtwellenreiter View Post
            @dimitri: der Artikel ist sehr hilfreich; ich werde mal die VARCHAR()-Felder ersetzen und schauen, ob sich was tut...
            Das wird auch nicht viel bringen, denn mit CHAR hast Du den Platzbedarf eben in der Tabelle und im Index.
            Bei mysql und utf-8 "ist das wohl so". Evtl. haben neuere Versionen das behoben.
            Zitat Tom Kyte:
            I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

            Comment


            • #7
              Also: Bei einer der beiden DB's war es erfolgreich; nachdem ich über sed alle varchar mit char ersetzt habe, habe ich nun wieder die ursprüngliche Größe (mit varchar 6,6 GB; jetzt 3,2 GB). Die zweite DB ist noch in Bearbeitung.... könnte noch was dauern weil ~50 GB...

              Comment


              • #8
                Hört sich ziemlich unsinnig an das char weniger Platz verbraucht als varchar. Oder ist der char jetzt wieder latin1 kodiert bzw. hast du ihn kürzer definiert als den vorherigen varchar?

                Comment

                Working...
                X