Android 一个大数据库与多个小数据库
我的应用程序处理几个类似的数据集。也就是说,它们存储在相同的表中,但数据不同。用户可以创建更多的数据集。在任何情况下,这些数据集都保证是不相交的。一个数据集中永远不会有任何数据以某种方式链接到另一个数据集中的数据 我想知道,对于每个数据集,是否最好有一个专用的数据库,而不是将所有数据都放在一个大数据库中 如果用户在较小的数据库上工作,我希望查找时间会缩短。在我担心查找时间之前,是否有经验法则,一个数据库(或表)可以容纳多少个条目 我能想到的一个缺点是打开数据库会产生一些开销。但是,我不希望用户频繁切换数据集 考虑这个例子: 数据库包含公司、客户、产品和订单的表格。公司从不共享客户或产品,因此公司是不相交的数据集。然而,所有的产品、客户和订单都放在一张大桌子上(分别放在一张桌子上) 对数据库的查询可能包括:Android 一个大数据库与多个小数据库,android,sqlite,android-room,database-performance,Android,Sqlite,Android Room,Database Performance,我的应用程序处理几个类似的数据集。也就是说,它们存储在相同的表中,但数据不同。用户可以创建更多的数据集。在任何情况下,这些数据集都保证是不相交的。一个数据集中永远不会有任何数据以某种方式链接到另一个数据集中的数据 我想知道,对于每个数据集,是否最好有一个专用的数据库,而不是将所有数据都放在一个大数据库中 如果用户在较小的数据库上工作,我希望查找时间会缩短。在我担心查找时间之前,是否有经验法则,一个数据库(或表)可以容纳多少个条目 我能想到的一个缺点是打开数据库会产生一些开销。但是,我不希望用户频
- 特定客户的所有订单
- 特定客户订购的所有产品
- 订购特定产品的所有客户
- 等等
如果不清楚的话:数据库将在Android手机上,而不是在云端或其他地方。你的问题让我想起了一些讨论关系数据库和将数据存储为json或其他noSQL选项之间区别的文章。如果不做一些关于你想要完成什么以及你可能达到什么程度的研究,就很难做出判断。但是,从维护的角度来看,您的数据库模式及其更改的灵活性将有利于单个db实例。您也可以使用多个表。这是纯性能的问题。你应该知道你的数据库应该有多大,你应该把所有的数据存储在不同的数据库中,如果这个量大约是一般数据库的20%,而且只会减少,那么使用一个数据库,如果它可以增加分配50%个或更多的通用数据库,你可以考虑单独的数据库。p> 数据库的一般大小也很重要。现代设备可以相对舒适地与高达500mb的数据库(约500000条重线路)一起工作。它将处理更多的内容,但需要对UX、UI和scheme进行一些修改,以最小化调用(分页、索引等)。虽然如果你运行这样一个应用程序的一些薄弱的设备,它会崩溃 还知道SQLite如何工作(RAM中的虚拟表),它高度依赖于应用程序可访问的RAM量。最好使用大小为100mb的db 正如你们所看到的,并没有单一的方法——你们必须根据你们的应用程序用例和预测的数据库大小来选择
希望这个答案对你有所帮助。没有经验法则。恐怕查找时间并不完全取决于条目的数量。这取决于几个因素,例如但不限于-
免责声明:在不了解您的用例和性能需求的情况下,以上所有内容都是非常通用的 我会选择一个数据库-更少的维护和可能出错的东西。
确保其优化和索引数据库将在手机上。我不认为更改数据库模式会有什么大不了的,因为它们是相同的,所以共享相同的房间实体。我只是打开它们