Bester SQL-Datentyp für serialized Strings?

  • Hi,

    nach langem Googeln bin ich auf unterschiedliche Meinungen zu der Frage "Womit speichert man serialized Strings am besten in MySQL ab?". Die meisten sagten mit Text oder Blob, ein paar auch Varchar.

    Was wäre nun das klügste?

    Lg

    PHP
    if(isset($this) || !isset($this)){ // that's the question...
  • Die Frage ist, wie lang kann der String werden? Bei 255 Zeichen ist bei VARCHAR Schluss, bei TEXT und BLOB liegst du bei 65.535 Zeichen. Bei MEDIUMBLOB und MEDIUMTEXT bei 16 .777.215, und bei LONGBLOB sowie
    LONGTEXT bei 4.294.967.295 Zeichen. Aber das wirst du ja bestimmt wissen, da du ja bestimmt in der Doku nachgesehen hast. :(

  • Zitat

    Werte in VARCHAR-Spalten sind Strings variabler Länge. Diese kann zwischen 0 und 65.535 liegen. (Die effektive Maximallänge einer VARCHAR-Spalte wird durch die maximale Datensatzgröße und den verwendeten Zeichensatz bestimmt. Die gesamte Maximallänge liegt bei 65.532 Byte.)


    - Auszug aus dem MySQL Referenzhandbuch

    Wieso sagen alle, dass Varchar auf 255 beschränkt ist - die MySQL Doku scheint anderer Meinung zu sein ?

    PHP
    if(isset($this) || !isset($this)){ // that's the question...
  • Naja, ich halte mich lieber noch an den Bereich von älteren MySQL-Versionen:

    Zitat

    Values in VARCHAR columns are variable-length strings. The length can be specified as a value from 0 to 255 before MySQL 5.0.3, and 0 to 65,535 in 5.0.3 and later versions.


    So nach und nach verschwinden die älteren Versionen, aber es gibt tatsächlich auch noch Server mit MySQL 4.x

  • Aja stimmt, ich hab das dunkel in Erinnerung, dass der phpMyAdmin bei Längen > 255 meckerte, das waren noch funpic Zeiten ^^'

    PHP
    if(isset($this) || !isset($this)){ // that's the question...