Nucat: MySQL: Doppelte Tabelleneinträge

Hallo,

nehmen wir mal an, ich habe folgende Tabelle mit drei Datensätzen. In zwei Datensätzen kommt in einer Spalte der selbe Wert vor. Nun ist die Frage: Speichert MySQL ein und den selben Wert in den zwei unterschiedlichen Datensätzen intern doppelt, sodass es unnötig Speicherplatz verbraucht?

Gruß,
Nucat

  1. nehmen wir mal an, ich habe folgende Tabelle mit drei Datensätzen. In zwei Datensätzen kommt in einer Spalte der selbe Wert vor. Nun ist die Frage: Speichert MySQL ein und den selben Wert in den zwei unterschiedlichen Datensätzen intern doppelt, sodass es unnötig Speicherplatz verbraucht?

    Jein - zwar wird die Datenmenge größer, aber das ist bei einem Datenbankfile ohnehin unerheblich da sich im laufenden betrieb in den Ressourcen der Datenbank ohnehin "voids" auftun die Speicherplatz "fressen" - bzw. durch Kompression wieder wett gemacht werden.

    Aber nicht nur das: wenn du irgendetwas "doppelt" speicherst, ist dein Datenbankdesign schlecht - ggf. solltest du dich mit Normalisierung beschäftigen.

    1. danke für die antwort. leider ist es aber bei mir nicht möglich und in einigen datensätzen werden dieselben datensätze vorkommen :(

    2. yo,

      Aber nicht nur das: wenn du irgendetwas "doppelt" speicherst, ist dein Datenbankdesign schlecht - ggf. solltest du dich mit Normalisierung beschäftigen.

      es ist leider ein weit verbreites märchen, dass wenn zwei oder mehr datensätze den gleichen wert haben, dass dies auf ein schlechtes daten-design zurück zuführen ist. und es findet auch immer wieder nahrung....

      Ilja

      1. es ist leider ein weit verbreites märchen, dass wenn zwei oder mehr datensätze den gleichen wert haben, dass dies auf ein schlechtes daten-design zurück zuführen ist. und es findet auch immer wieder nahrung....

        Wenn es verdächtig oft vorkommt, dass Werte in ähnlichen Datensätzen ident sind lässt sich das Datenbankdesign sicher optimieren.

        Natürlich ist das nicht immer der Fall - man stelle sich eine Session-Tabelle vor in der in einem Feld der HTTP_USER_AGENT gespeichert wird. Hier ist es relativ naheliegend, dass man den String 1:1 verwendet und nicht in eine zweite Tabelle auslagert.

        1. yo,

          Wenn es verdächtig oft vorkommt, dass Werte in ähnlichen Datensätzen ident sind lässt sich das Datenbankdesign sicher optimieren.

          ich weiß nicht auf welche regel der normalisierung du anspielst. aber ich kenne keine, wo es darum geht, gleiche werte zu suchen. und selbst wenn ich solche gleichen werte finde, sagt es noch nichts aus, sie auszulagern oder nicht. ist und bleibt ein falscher ansatz, derm mehr in die irre führt als hilft.

          Ilja