Kann Blob-Datentyp auch die Videodaten speichern?Blob Datentyp?
Antwort
Speicher von Video in einer SQLite-Datenbank legen sie einfach eine schreckliche Idee. Tu es nicht.
Stellen Sie keine großen BLOBs in einer Datenbank. Setzen Sie sie in das Dateisystem neben Ihrer Datenbankdatei und schreiben Sie dann die Dateinamen oder eine URL in die Datenbank. Dies wird eine Tonne schneller sein, wird die Datenbank viel effizienter nutzen, wird I/O minimieren (dadurch, dass das Video nicht in das Paging-Schema der Datenbank aufgespalten werden muss, und wird die Verwaltung der Videos erleichtern (ein Dateisystem delete
eine Datei ist eine Tonne schneller als eine Datenbank, die eine Reihe von Seiten auszuschneiden aufweist, die das BLOB enthält).
BLOBs in der Datenbank Putting schrecklich ineffizient ist und, möglicherweise, wird Ihre App ausblasen Speicherverbrauch auch (es sei denn, Sie haben eine Möglichkeit gefunden, Daten von der Datenbank zum Videodecoder zu streamen)
Es wird zusätzliche I/O, mehr Leistung, und Leistung wird in der Regel zur Hölle gehen, wie Sie speichern mehr Einträge in der Datenbank, wenn y Wenn Sie BLOBs mit kleinen Daten in der Datenbank mischen, können Sie leicht mit einer pathologisch fragmentierten Datenbank landen. Auto-Staubsaugen wird helfen, aber es ist noch mehr Ineffizienz, mehr I/O und mehr Akkulaufzeit verbraucht.
Ja, es gibt Datenbanken, die BLOBs ziemlich gut im Griff. Und sie sind für diese Frage völlig irrelevant, deren einziges Kennzeichen "iPhone" ist.
Beachten Sie, dass die Antwort auf die Frage "behandelt BLOBs und Streaming Media besser als das Dateisystem" ziemlich immer erfordert, dass Sie eine Datenbank verwenden, die zu/von einem unformatierten Gerät liest/schreibt - eine Partition auf einem Hard Laufwerk, das ist nichts als Datenbankinhalte. Jede andere Lösung wird notwendigerweise eine Schicht über einem vorhandenen Dateisystem sein, und es wird Kosten geben, selbst wenn der Datenbankhersteller die gesamte Engineering-Arbeit (und es ist riesig) ausgeführt hat, um den Datenbankzugriffs-I/O so gut wie möglich zu entsprechen zugrundeliegende Dateisystem-Semantik.
Der Datentyp Blob kann beliebige binäre Daten zu speichern, verwendet werden. Insbesondere steht es für B (inary) L (arge) Ob (ject) (http://en.wikipedia.org/wiki/Blob_(computing))
Übersetzung: ja. +1 :-) – Thilo
@Thilo, danke fürs übersetzen meiner müden antwort ;-) –
Ich benutze Blog, um Video in meiner SQLite DataBase zu speichern und seine Arbeit gut, ich habe mehr als 100 Video in meiner Datenbank zu speichern Zeit zu speichern, das Video
kannst du mir bitte einen überblick geben wie man das video und image auch im blob datentyp speichert? –
NSData *imageData;
NSURL *imageURL = [[NSURL alloc] initWithString:[[videolistArray objectAtIndex:[number intValue]] valueForKey:@"video"] ];
if (imageURL) {
imageData = [NSData dataWithContentsOfURL:imageURL];
}
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
if (!documentsDirectory) {
NSLog(@"Documents directory not found!");
}
NSArray *myWords = [[NSString stringWithFormat:@"%@",[[videolistArray objectAtIndex:[number intValue]] valueForKey:@"video"]] componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"/"]];
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:[myWords lastObject]];
[imageData writeToFile:appFile atomically:YES];
in diesem i speichert Video in iphone Dokumentenverzeichnis u es in SQLite Datenbank ist w
- 1. Wie verwende ich den Blob-Datentyp in Postgres
- 2. Fehler beim Versuch, eine Tabellenspalte im BLOB-Datentyp zu aktualisieren
- 3. Wie erhält man einen vollständigen hexadezimalen Wert vom Blob-Datentyp?
- 4. Benutzerdefinierter Datentyp (MPI_Datatype-Datentyp)?
- 5. Solr Blob Store-API - Blob zu groß
- 6. Datentyp-Konvertierungs
- 7. Iphone-Datentyp
- 8. Abgeleiteter Datentyp
- 9. Datentyp hexadezimal
- 10. Datentyp Mapping
- 11. Datentyp Konvertierungsproblem
- 12. Datentyp Frage
- 13. Datentyp Jasmin
- 14. HTML5/Javascript - DataURL zu Blob & Blob zu DataURL
- 15. Azure Blob-Speicher - automatisch eindeutigen Blob-Namen generieren
- 16. Yii2 Datei auf Oracle BLOB speichern
- 17. Blob-Eigenschaften mit Entity Framework 4 erstellen?
- 18. illegale Nutzung von LONG-Datentyp 00997. 00000 - „illegale Nutzung von LONG-Datentyp
- 19. Delphi Oracle blob
- 20. Blob-Extraktion in OpenCV
- 21. Blob Speicher des Bildtyps
- 22. Orakel Blob Textsuche
- 23. Wie Blob mit Django
- 24. Caffe Unknown Boden blob
- 25. sqlite3 blob Problem
- 26. Bilddaten Blob von XMLHttpRequest
- 27. Fehler mit Blob-Bild
- 28. Searchkick Index Blob Spalten
- 29. Blob-Konstruktor-Browser-Kompatibilität
- 30. BLOB-Spaltendaten aktualisieren
Außerdem sind die Vorteile, sie als Blobs zu speichern, fast nicht existent. Für diese Art von Blob-Speicher in Enterprise-Systemen mit riesigen systemübergreifenden Datenbanken, die verrückte Backup-Schemata und globale Datenreplikation erfordern, mag es möglicherweise gültige Argumente geben - vielleicht - aber keines dieser Dinge trifft auf einem iOS-Gerät zu. –
FWIW, es gibt ein DBMS, das Videodaten gut speichert, und der Hersteller (FrontBase) hat sich die Mühe gemacht, mit dem Quicktime-Team zusammenzuarbeiten, um die Daten reibungslos abzurufen. – NSResponder
Ihre Antwort ist implementierungsabhängig. SQLite ist zwar bei BLOBs schlecht, aber man kann sich leicht eine Datenbank vorstellen, die es nicht gibt, und es gibt offensichtliche Vorteile beim Speichern von Daten in der Datenbank. Zum Beispiel, einfachere Updates und integrierte Unterstützung für die Replikation. Sie müssen ein Urteil treffen, das auf der von Ihnen verwendeten Implementierung und Ihren spezifischen Anforderungen basiert.Denken Sie daran, dass Ihr Dateisystem auch als Datenbank betrachtet werden kann und genau die gleichen Probleme mit der Fragmentierung hat. –