我的情况如下:
我有一个巨大的CSV文件,其中包含约30万个条目,并使用CSVImporter Framework在Swift中将其转换为Dictionary。 用户现在可以在应用程序中输入密钥,它将打印出值。可悲的是,在此之前,应用程序必须将整个字典(大约800MB)加载到RAM中,有时大约需要1-2分钟才能进行搜索。加载后,搜索速度很快。
代码如下:
var stack = [String: String]()
let path = Bundle.main.path(forResource: "MASTERKopie", ofType: "csv")!
importer.startImportingRecords { $0 }.onFinish { importedRecords in
for record in importedRecords {
stack[record[0]] = record[2]
}
如果我要使用SQLite,如何将字典转换为数据库/表?
答案 0 :(得分:1)
在您的应用程序外部的计算机上,编写将大数据重新编码为SQLite数据库的脚本或应用程序。在应用程序中包含该数据库。现在,当应用程序运行时,可以通过SQLIte立即获得数据,而无需花费任何时间进行转换,也不会对内存造成压力(因为需要根据需要从磁盘执行数据提取)。