Тип данных BLOB-объектов? - PullRequest
       5

Тип данных BLOB-объектов?

0 голосов
/ 06 декабря 2010

Может ли тип данных BLOB-объектов также хранить видеоданные?

Ответы [ 4 ]

15 голосов
/ 06 декабря 2010

Хранение видео в базе данных SQLite - ужасная идея. Не делай этого.

Не помещайте большие BLOB-объекты в базу данных. Поместите их в файловую систему рядом с файлом базы данных, а затем запишите имена файлов или URL в базу данных. Это будет намного быстрее, будет намного эффективнее использовать базу данных, минимизирует ввод-вывод (в этом случае видео не нужно будет разбивать на схему подкачки базы данных и упростит управление видео ( файловая система delete файла на тонна быстрее, чем база данных, требующая вырезать кучу страниц, содержащих большой двоичный объект).

Помещение BLOB-объектов в базу данных ужасно неэффективно и, вполне возможно, также приведет к потере памяти вашим приложением (если вы не нашли способ передавать данные из базы данных в видеодекодер).

Это потребует дополнительных операций ввода-вывода, увеличения энергопотребления, а производительность, как правило, пойдет к черту, когда вы будете хранить больше элементов в базе данных. Если вы смешиваете большие двоичные объекты в базе данных, вы можете легко получить патологически фрагментированную базу данных. Авто-пылесос поможет, но это еще больше неэффективно, больше ввода-вывода и больше времени автономной работы.

<Ч />

Да, есть базы данных, которые справляются с BLOB достаточно хорошо. И они совершенно не имеют отношения к этому вопросу, чей единственный тег - «iPhone».

Обратите внимание, что для ответа на вопрос "обрабатывает большие двоичные объекты и потоковую передачу мультимедиа лучше, чем файловую систему", почти всегда требуется, чтобы вы использовали базу данных, которая считывает / записывает на / с необработанного устройства - раздел на жестком диске это не что иное, как содержимое базы данных. Любое другое решение обязательно будет слоем поверх существующей файловой системы, и это будет стоить затрат, даже если поставщик базы данных выполнил всю инженерную работу (и она огромна), чтобы максимально совместить доступ к вводу-выводу базы данных с семантика базовой файловой системы.

2 голосов
/ 06 декабря 2010

Тип данных BLOB-объектов может использоваться для хранения любых двоичных данных. В частности, это означает B (inary) L (arge) Ob (ject) (http://en.wikipedia.org/wiki/Blob_(computing))

0 голосов
/ 06 декабря 2010
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];

В этом я сохраняю видео в каталоге документов iphone, просто вставляю его в базу данных SQLite w

0 голосов
/ 06 декабря 2010

Я использую блог для хранения видео в моей базе данных SQLite, и он хорошо работает, я храню более 100 видео в своей базе данных, и для его хранения требуется время

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...