想象一下有一个桌面应用程序 – 可以最好地描述为用户插入/查看记录的记录保存 – 依赖于包含大对象层次结构和属性的数据库后端.应如何处理数据检索?
是否应在启动时加载所有数据并将其存储在相应的类/结构中以供以后操作,或者是否应仅在需要时检索数据,将其存储在模型类/结构中,然后再重复使用,而不是再次向DB请求?
据我所知,前一种方法需要使用更大的内存部分和启动时可能的等待时间(如果显示启动画面则不是很糟糕),而后者可能会在处理过程中使用户受到延迟数据检索并且需要对数据库执行一些昂贵的查询,其结果和/或支持数据结构一旦使用就很可能没有用处*.
有些东西告诉我,解决方案在于深入分析,这将导致上面列出的两种方法混合使用最常用的数据,但我非常有兴趣阅读您关于该主题的想法,提示和现实生活经验.
为了讨论,我正在考虑C和SQLite.
谢谢!
*假设您可以在类/对象上执行更快的操作,而不必在数据库上执行复杂的查询.
编辑
一些额外的细节:
>不能同时访问数据,这意味着只有1个用户处理本地存储的数据.
>根据人为变化发送数据 – 即低频率.对于从数据库中读取数据,这不一定是正确的,在那里我可以期望很多读取的峰值,我想要快速.
>我最害怕的是用户在显示复杂记录时感到缓慢(因为必须从数据库中读取).
最佳答案 使用
Lazy Load和
Data Mapper(第165页)模式.