我有大约1000 - 5000条记录,并希望将它们保存在数据库中以便快速访问。
我在Windows Phone Runtime中使用了SQLite,但它非常慢,一秒钟只插入2-3个。
我想知道是否存在比SQLite更快的其他数据库解决方案?
答案 0 :(得分:1)
我认为答案是 - 简而言之 - 不。
微软在推出Windows应用商店应用时已经放弃了旧的LINQ to SQL。该功能仅适用于Silverlight应用程序。
到目前为止,SQLite是唯一的出路(imo)。但我在这里看到了很多优化空间。如果您只设法在1秒内插入2-3条记录,则瓶颈不应该是SQLite。如果已编写的应用程序使用SQLite并在心跳中将10-20条记录推送到数据库中。
我对你的代码知之甚少,但从你的速度问题来看,你必须有一些非常复杂的映射。如果代码优化没有帮助,您应该尝试放松一些原子性并组合一些嵌套对象,以便更快地查询。
速度还可能取决于您正在使用的包装器。 SQlite-WinRT(https://www.nuget.org/packages/Sqlite-Winrt/)是更简单的SQL,而SQLite-Net(https://github.com/praeclarum/sqlite-net)映射您的对象。
当然,您可以随时编写自己的存储空间。将每个实体的JSON文件写入漫游设置,您可以并行保存对象及其所有嵌套实体。如果它只是在没有太多读数的情况下编写,则不应该遇到并发问题。 JSON.Net(http://james.newtonking.com/json)非常快,可以立即序列化您的对象。
最后但并非最不重要:您可以选择一种解决方案来节省一些插入查询:将对象序列化为json并将它们放在一个表中。我会在实际使用它之前对该解决方案进行基准测试,因为它不是很漂亮。
但是:在拔出大枪之前,您可能想先向我们展示您的代码..