在我的服务器端,我需要以某种方式存储用户数据。前段时间我曾经使用 INI 文件来写入和读取这些值。即使有数千个文件,它也非常快(毫秒),可能是由于缓存。最近我正在考虑一些 DB,但我不确定它有多快。那个旧的“INI”方法很简单,因为我直接告诉程序“加载 UserJohn.ini 并读取项目 PASSWORD”。使用 DB,我首先需要选择带有玩家姓名的记录并获取值...真的不知道它比文件方法慢还是快...请忽略安全性等方面,我只想知道您对速度的看法,谢谢!
答案1
如果您要存储大量记录,那么拥有索引表绝对可以加快速度。许多超级简单的数据库都是进程内的,通常不太热衷于共享连接,因此如果在 Web 应用程序中使用它们(或只是大量并发线程),许多这些数据库可能会开始出现真正的问题。
还有其他的权衡,比如不必重新发明轮子,而只需进行一般的代码维护。
答案2
我想说如果缓存文件的话速度会快一点。它是直接访问,而对于任何数据库,您都必须连接、发送命令、等待回复并处理它。
答案3
对于您提到的卷,数据库可能会更快,因为您可以索引表。不过,这取决于您是否缓存 .ini 文件以及何时缓存。如果您能够在进程启动时缓存一次文件,那么该方法可能会更快。但是,如果您必须反复重新加载文件,那么数据库中的索引表可能会快得多,因为它不必在访问文件时加载整个文件来提取一行。
答案4
如果您想要 SQL 语言功能,但不想运行 SQL 服务器,请使用 sqlite[1] 而不是 sql ce。
[1]https://stackoverflow.com/questions/583278/sqlite-vs-sqlce-vs-in-a-mobile-application