簡體   English   中英

使用FMDB在iOS中查詢sqlite中的BLOB數據選擇太慢

[英]Query select of BLOB data in sqlite too slow in iOS using FMDB

我正在為我的sqlite數據庫使用FMDB包裝器,並且在數據庫中,我存儲從url下載的圖像,並存儲在BLOB數據中,但是當我在數據庫中進行SELECT查詢時,如下所示:

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 ,如果大型BLOB(例如圖像數據)存儲在外部,並且僅存儲文件路徑,則可以提高SQLite性能。被記錄在數據庫中。

如果將圖像存儲在“文檔”目錄中,則它們將備份到iCloud(如果用戶已激活該功能)。 如果不需要iCloud備份(例如,因為可以隨時從服務器重新加載映像),那么“ Library / Caches”(使用NSCachesDirectory )將是一個更好的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM