我正在构建一个 KTOR 后端服务器,它从 API 中提取数据并将其存储在 MongoDB Atlas 中。一些始终相同的数据我已将其存储在 MongoDB 中。我经常需要它来处理 API 数据。我有两个选择?要么我在每个 API 请求时调用从 mongo 中提取它,这将增加与数据库的连接,或者我所做的是将数据存储在代码资源文件夹中的 JSON 文件中,并从该文件中提取所需的数据。
就性能而言,第二种方法是否比第一种方法更好?
注意 - json 文档是 10000 个对象的数组,大小为 1.5MB。
这是我用来获取数据的代码
fun getStationsFromJson(statCode:String): Station? {
val jsonText = File("fillepath").readText()
val stations =Json.decodeFromString<List<Station>>(jsonText)
val foundStationByCode = stations.find { it.stationCode == statCode }
return foundStationByCode
}
这种方法好不好?或者还有什么我可以做的吗?
您可以尝试在服务器启动时将 JSON 数据缓存在内存中,使用 HashMap 通过 stationCode 进行高效的 O(1) 查找
样本