C#:存储大型复杂数据的方法
本文关键字:数据 方法 复杂 大型 存储 | 更新日期: 2023-09-27 18:24:43
我正在尝试存储一个软件"日历"(根据日期保存和浏览的复杂日志)。
我尝试使用.ini和xml,但当应用程序试图读取整个文件以查找100天中某一天的信息时(或者看起来是这样),从500个变量中获取5个变量几乎需要9秒。实际文件的大小最终可能会超过每天40个变量。
此外,我宁愿不为每一天做一个文件,这看起来有点不专业和混乱。
我问这个问题是想知道是否有其他方法可以保持事物的快速和整洁。数据包括不同类型的变量和不同数量的变量。我知道我在日志方面做得有点过头了,但程序需要日志来完成它的工作
如果数据必须存储,它必须是一个文件或数据库(本地或远程),我会选择SQLite,它将以单个文件结束,但您可以使用SELECT、JOIN等查询数据。
编辑:如果包含以下软件包,则可以使用c#中的SQLite3:https://www.nuget.org/packages/System.Data.SQLite/
您需要学习一些SQL,但在那之后,您只需要使用以下内容:
select Message from Logs where Date > '2015-11-01' and Date < '2015-11-25';
这比使用XML更容易、更快、更清晰,而且不会加载整个文件。
如上所述,SQLite将提供很大的可能性。由于你(一般来说),这里可能没有多少人能够编写一个与现有系统一样高效的数据库管理系统。
https://www.sqlite.org
使用RDBMS的全部意义,因为它比处理文件效率高得多。
SQLLite重量轻,易于部署。但请记住,
SQLite一次只支持一个编写器(意味着执行个人交易)。当它需要一个锁(读或写),并且只有一个写入程序可以持有一次写入锁定。由于它的速度,这实际上不是问题适用于中小型应用程序,但如果您有更大的容量写入次数(每秒数百次),则可能成为瓶颈。参考这个问题
如果这是一个企业级应用程序需求,我会选择基于Azure表存储的解决方案,它与这类场景完全相同。