gpt4 book ai didi

ios - 在 iOS 中使用 FMDB 在 sqlite 中查询 BLOB 数据太慢

转载 作者:行者123 更新时间:2023-11-29 03:43:36 24 4
gpt4 key购买 nike

我正在为我的 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)将是更好的位置。

关于ios - 在 iOS 中使用 FMDB 在 sqlite 中查询 BLOB 数据太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18025551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com