2

我正在创建一个使用 SQLite 数据库存储数据的应用程序。该应用程序类似于任务应用程序,它主要只是抓取和显示数据并在需要时对其进行更新。

我的问题是初始化单独的对象是否值得(我认为这会在应用程序加载时发生),或者直接从/向数据库读取/写入值是否更好。

我已经看到使用这两种方法,但我的直觉说直接与数据库交互会便宜得多,因为内存开销会更少,并且无论如何最终都必须从数据库中读取/保存值,但是也许每次加载或更新数据时运行查询会比与对象交互要慢。

至于约束,我在 ORM 上使用 SQLite 数据库,因为我希望代码和数据存储尽可能跨平台,而且我还没有找到任何与 Python (Obj-)C 接口的 ORM,和 java,它们是我正在使用的目标语言。如果有人对每种语言有任何建议,请告诉我。

4

3 回答 3

0

我认为缓存会有所帮助,尤其是对于经常需要的对象(如用户 - 权限)。

您可以在要存储在缓存中的对象上使用这样的模式,以后可以随时轻松地打开/关闭此缓存(对于 java,我推荐使用 ehcache):

getObject (key){
  if(object present in cache) return object from cache;
  load object from database;
  store it to cache;
  return object
}

米海

于 2012-06-12T12:19:40.350 回答
0

如果数据库不是太大,我建议你(创建和)使用 SQLite 数据库的内存样式;你可以先看看这个。另外,在您完成访问/写入内存中的数据库后,您可以随时将其转储到文件中以备后用;将 SQLite 数据库分别加载和保存到内存和磁盘使用起来非常简单sqlite3_backup_init(),正如这里给出的那样。sqlite3_backup_step()sqlite3_backup_finish()

(我不清楚您在 ORM 中需要什么功能。)

于 2012-06-13T18:33:37.900 回答
0

通常缓存会有所帮助,尤其是当您对应用程序有大量并发访问时。

每次您必须访问网络服务器时,您都会浪费时间(您需要访问另一个应用程序,通常是另一个服务器,来回传输数据)。访问本地对象要快得多。

最简单的解决方案是尝试对像用户这样的类打开/关闭缓存,看看它是否有所作为。

于 2012-06-12T12:31:57.327 回答