我有一个简单的应用程序来存储联系人。此应用程序使用简单的关系数据库来存储联系人信息,如名称,地址和其他数据字段。
在设计时,我想到了一个问题:
在设计使用数据库的程序时,我应该检索所有数据库记录并将它们存储在程序中的对象中,这样我的性能会非常快,或者我应该只在需要时才收集数据?
当然,检索所有数据只能在没有太多的情况下才能完成,但是当你确保数据库很小(例如<300条记录)时,你是否使用这种方法?
我曾经设计过一个类似的应用程序,只在需要时才提取数据,但速度很慢(使用Access数据库)。
感谢您的帮助。
答案 0 :(得分:1)
我认为最好在需要时检索数据,检索所有记录并将其存储在对象中可能是一种开销。当你说你有一个小型数据库时,在需要时检索记录应该不是问题。
答案 1 :(得分:1)
这在很大程度上取决于数据类型,应用程序的工作状态,事务,多个用户等。
通常,您不想拉动所有内容并对应用程序中的数据进行操作,因为几乎所有上述条件都会导致数据变得不同步。想象一下,当其他人从其应用程序内的缓存版本中查看该信息时,用户更新联系人。
在您的应用程序中,您应该设计数据库查询,以便它们检索将在当前屏幕上显示的内容。如果用户正在查看联系人列表,则查询将检索整个联系人表,或者如果您正在执行分页视图,则检索其中的一部分。例如,当他们点击某个联系人以获取更多信息时,新查询会请求该联系人的完整详细信息。
对于字符串和小块数据(如联系人列表所涉及的内容),使用SQL,MySql或Oracle等关系数据库时不应出现任何速度问题。