我對我的sqlite數據庫使用FMDB封裝,並在數據庫中存儲圖像從URL下載,並存儲在BLOB數據,但是當我做像這樣在數據庫中的SELECT查詢:查詢選擇的sqlite中的BLOB數據太慢使用FMDB的iOS
SELECT id,img FROM table1 WHERE name = "Carl"
,這是在數據庫中的列:
img BLOB
但查詢速度很慢,如果我從查詢中刪除IMG,這是非常快,我從URL下載圖像後,我調整它的大小,使其更小,並以這種方式節省內存空間:
NSData *biggerImg = [NSData dataWithContentsOfURL:[NSURL URLWithString:url_image]];
NSData *img = UIImageJPEGRepresentation([self imageWithImage:[UIImage biggerImg] scaledToSize:CGSizeMake(90, 134)], 1.0);
- (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {
//UIGraphicsBeginImageContext(newSize);
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
任何人都知道我可以如何使查詢更快?我需要在查詢中也有圖像。
感謝
它是一個選項來分別存儲圖像,並且只有它的路徑在數據庫中?這可能是有趣的:http://www.sqlite.org/intern-v-extern-blob.html。 –
非常感謝你,如果你創建一個答案我會接受它,我也想知道我必須將img存儲在這個文件夾中嗎? this:NSString * Dir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)objectAtIndex:0]; – Piero