Binärdaten in MySQL
Wie kann ich das speichern von binären Daten in MySQL?
InformationsquelleAutor der Frage Geoff Dalgas | 2008-08-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie kann ich das speichern von binären Daten in MySQL?
InformationsquelleAutor der Frage Geoff Dalgas | 2008-08-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Antwort phpguy ist richtig, aber ich denke, es gibt eine Menge Verwirrung in der zusätzliche Informationen gibt.
Die grundsätzliche Antwort ist in einem
BLOB
Daten Typ /Attribut, Domäne. BLOB ist die Abkürzung für Binary Large Objekt und Datentyp der Spalte ist spezifisch für den Umgang mit binären Daten.Sehen die jeweiligen Handbuch-Seite für MySQL.
InformationsquelleAutor der Antwort Mat
Für eine Tabelle wie diese:
Hier ist ein PHP-Beispiel:
InformationsquelleAutor der Antwort
Empfehle ich gegen speichern von binäre Daten in einer relationalen Datenbank. Relationale Datenbanken sind entworfen, um mit fester Größe von Daten; das ist, wo Ihre Leistungsfähigkeit ist: denken Sie daran,Joel alten Artikelwarum Datenbanken so schnell? denn es dauert genau 1 Zeiger Inkrementieren, um von einem Datensatz zu einem anderen Datensatz. Wenn Sie hinzufügen von BLOB-Daten von undefinierten und stark variierender Größe, Sie werden es vermasseln Leistung.
Stattdessen speichern Dateien in der Datei-system, und speichern der Datei-Namen in Ihrer Datenbank.
InformationsquelleAutor der Antwort Alex Weinstein
Während Sie noch nicht gesagt, was Sie speichern, und Sie können eine große Grund dafür ist, oft die Antwort "wie ein Dateisystem reference' und die eigentlichen Daten auf dem Dateisystem, irgendwo.
http://www.onlamp.com/pub/a/onlamp/2002/07/11/MySQLtips.html
InformationsquelleAutor der Antwort Issac Kelly
Kommt es auf die Daten, die Sie speichern möchten. Im obigen Beispiel wird die
LONGBLOB
Daten geben, aber Sie sollten sich bewusst sein, dass es andere binäre Daten Formate:TINYBLOB/BLOB/MEDIUMBLOB/LONGBLOB
VARBINARY
BINARY
Jede hat Ihre Anwendungsfälle. Wenn es eine bekannte (kurze) Länge (z.B. gepackte Daten) oft
BINARY
oderVARBINARY
arbeiten. Sie haben den zusätzlichen Vorteil des seins in der Lage, ton-index auf.InformationsquelleAutor der Antwort d0nut
Während es sollte nicht nötig sein, könnten Sie versuchen
base64
Codierung von Daten in und Decodierung aus. Das bedeutet, dass die db nur noch ascii-Zeichen. Es wird ein wenig mehr Platz und Zeit, aber jede Frage zu tun, mit der binäre Daten eliminiert werden.InformationsquelleAutor der Antwort user10117
Wenn die - nicht zu empfehlen - BLOB-Feld vorhanden ist, können Sie speichern Daten auf diese Weise:
Idee entnommen aus hier.
InformationsquelleAutor der Antwort
Auch stellt sich die Frage, wie man die Daten in den BLOB. Sie können die Daten in einer INSERT-Anweisung, wie das PHP-Beispiel zeigt (obwohl Sie verwenden sollten, mysql_real_escape_string anstelle von addslashes). Wenn die Datei existiert, wird auf dem Datenbank-server können Sie auch die Verwendung von MySQL ist LOAD_FILE
InformationsquelleAutor der Antwort Scott Noyes
Wenn ich zum speichern von binären Daten, die ich immer verwenden
VARBINARY
- format, als eingeführtbyd0nut
.Können Sie finden die Dokumentation auf der MySQL-website unter dokumentierte Thema 12.4.2 Die BINARY-und VARBINARY-Typen
Wenn Sie sich Fragen, was sind Vorteile, schauen Sie bitte bei Frage warum-varbinary-anstelle-von-varchar
InformationsquelleAutor der Antwort zeppaman
Eine viel bessere storage-Implementierung in zur Verfügung hier.
Sie laufen in Probleme mit Florians Umsetzung.
InformationsquelleAutor der Antwort DreamWerx