2016-06-18 3 views
0

Ich habe eine Datentabelle, die oft gelesen werden muss. Ich muss Strings und binäre Daten variabler Länge darin speichern. Ich könnte Daten wie BLOB oder TEXT speichern, aber die Art, wie ich MySQL verstehe, diese Typen werden auf der Festplatte statt des Speichers gespeichert, und wenn ich sie verwende, wird die Geschwindigkeit des Lesens der Tabelle niedrig sein.Beste MySql-Datentypen zum Speichern von Strings variabler Länge und Binärdaten

Gibt es alternative Typen variabler Länge, die ich verwenden könnte? Oder gibt es eine Möglichkeit, MySql mitzuteilen, dass die Daten in Spalten dieser Typen gespeichert werden sollen?

+0

RDBMS sind wohl nicht dafür gedacht, obwohl einige dies tun. Sie versuchen, alle Dinge für alle Menschen zu sein, vor allem, um auf Funktionalität zu setzen, wie fein abgestimmte transaktionale, hochperformante Nebenläufigkeitssysteme, auf die Sie sich verlassen können ... und aufgrund der Vermarktung sie für die Zwecke des Marketsharing zu schlachten. Zum Beispiel, dass man Filme in voller Länge speichern kann. Oder hoffen, dass sie nicht zur Volltextsuche nach 'solr' laufen. Manchmal muss man realistisch sein, wie der eigene Druck seine Kernkompetenzen verletzt. – Drew

Antwort

0

Ist diese 'Datentabelle' der einzige Ort, an dem die Strings gespeichert sind? Wenn dies der Fall ist, benötigen Sie die 'Persistenz', um es auf der Festplatte zu speichern. Allerdings wird MySQL die Daten "zwischenspeichern", so dass Lesevorgänge fast immer aus dem Arbeitsspeicher stammen.

Wenn jedes Datenelement nicht zu groß ist, können Sie ENGINE=MEMORY für die Tabelle verwenden; das würde die Daten nur im RAM belassen. Ein Systemabsturz würde die Daten verlieren.

Wenn Sie jedoch keine Persistenz benötigen, gibt es viele Arten von Caching außerhalb von MySQL. Beschreiben Sie bitte, wo die Daten herkommen, welche Sprache die Daten verwendet, wie groß die Daten sind usw.