2010-12-06 5 views

ответ

15

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

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

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

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


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

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

2

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

+0

Перевод: да. +1 :-) – Thilo 2010-12-06 06:23:45

+0

@Thilo, спасибо за перевод моего усталого ответа ;-) – 2010-12-06 17:39:21

-2

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

+0

не могли бы вы дать мне обзор хранения видео и изображения, а также в виде данных blob? – 2010-12-06 06:32:18

-1
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 ж

Смежные вопросы