我的项目需要一个SQLite数据库来存储相关信息,这些信息将在下次启动程序时读取。
最好是阅读完整的数据库,为每一行创建对象并处理存储在列表中的这些对象,还是应该总是向数据库询问该行?
数据库将有大约10,000行,每秒绕过一个查询,我想在那里选择一行。 如果我应该使用列表中的对象,我怎样才能将它们带回来?我认为放弃这个表并创建一个新表不是最好的解决方案。
答案 0 :(得分:2)
每个选项都有起伏不定:
从db获取所有对象列表:
另外:
减:
在需要时获取每个:
另外:
减:
在每种情况下,我怀疑性能是否明智,如果您的行不是很大,您会注意到一个巨大的差异。
如果您决定查询一次并使用这些对象,则必须先保存全部或保存所有已更改的文件(如果您的程序意外死亡,则可能会丢失更改)。
如果你一次得到一个项目,然后保存它,更多的调用db(磁盘,因为它是sqlite),但如果出现问题,你可能会失去更少的信息。
答案 1 :(得分:0)
过早优化是万恶之源。 - Donald Knuth
你真的不应该优化现在不是性能问题的东西。