我正在为Android创建一个基于Web的应用程序,而我来到了帐户系统的地步。以前,我将一个人的所有数据存储在一个位于users/<name>.txt的文本文件中。现在考虑在数据库中执行此操作(可能您应该这样做),因为它必须查找名称等于输入的行,所以加载时间不会更长吗?

因此,我的问题是,从文本文件读取数据是否更快,因为它知道其位置而易于打开,还是从数据库中获取信息更快,尽管它必须先逐行扫描直到它到达正确名称的那个?

我不在乎安全性,我知道第一个选择是根本不保存。在这种情况下,这并不重要。

谢谢,

梅林

最佳答案

在任何有关性能的问题中,第一个答案通常是:试试看。

就您而言,您正在逐行读取文件以查找特定名称。如果只有几个名称,则文件可能会更快。随着更多的行,您可能会阅读一段时间。

数据库可以使用索引对其进行优化。请注意,只有大量数据(数万个字节)之后,索引才会有很大的作用。原因是数据库以称为数据页的单元读取记录。因此,它一次不会读取一条记录,而是读取一页的记录。如果您有成千上万的名称,那么数据库将更快。

数据库的主要性能优势也许是,您第一次读取数据后,它将驻留在页面缓存中。随后的访问将使用缓存并仅从内存中读取它-我可能会自动添加,而无需您费力。

数据库的真正优势在于,它使您可以灵活地轻松添加更多数据,记录交互以及存储可能与您的应用程序相关的其他类型的数据。关于仅搜索特定名称的狭义问题,如果最多只有几十个,则文件可能足够快。该数据库对大量数据更有用,因为它为您提供了附加功能。

10-04 11:16
查看更多