【问题标题】:How to store information? Database vs Data-Structure vs Log files [closed]如何存储信息?数据库 vs 数据结构 vs 日志文件 [关闭]
【发布时间】:2014-03-17 06:00:11
【问题描述】:

最近在一个问题中遇到一个场景:

n 网站每个都有n 页面和n 用户访问这些网站....必须保存用户的每次访问以及他/她访问过的页面(未提及无论是在数据库还是日志文件中,这取决于开发人员

我决定继续它并在数据结构中做一些事情,但是当我和我的一个朋友讨论这件事时,他说,我们可以将它保存在数据库中,这在逻辑上听起来也是正确的。

所以我们一般有 3 种存储任何东西的方式...log filesdata-structuredatabase

现在我真的很困惑,什么时候应该使用数据结构、数据库或简单的日志文件,不仅针对这种特定场景,而且以通用方式?

真正的区别是什么?


我了解此问题主要基于意见,但在浏览时无法获得具体结果!

【问题讨论】:

  • 请对downvoting发表评论,这也将有助于我理解! :)

标签: database data-structures logfile


【解决方案1】:

日志文件通常/通常只输出 - 这些文件很少(如果有的话)被读取,可能只能手动读取。某些类型的文件可能具有随机访问权限,允许您通过单个索引(通过二进制搜索)相当有效地找到给定记录,但您不能(轻松)在单个文件中的数据上有多个索引,这是一个数据库的琐碎任务。如果您只是想记录一些内容以供以后手动处理,则日志文件可以正常工作(即使数据库也可以工作)。

数据库是行业标准,因为它们为您提供持久性、高效读写、标准接口和冗余(当然它们需要正确设置)。

纯粹的数据结构解决方案通常不考虑持久性存储,以确保在程序因某种原因停止运行时保留您的数据。如果您确实想要写入和读取持久存储,这通常会带来相当多的复杂性,以便高效且定期地执行。多个/复杂的索引有点麻烦。这并不是说数据结构不能与持久存储一起使用——数据库是使用数据结构构建的,并且一些数据结构是专门为磁盘读写而设计的。但是您不想在低级别上解决这个问题 - 如果您需要持久性,最好让数据库来处理它。

您还可以结合数据结构和数据库,将数据库用作持久存储,并使用数据结构来缓存结果,这样您只需(较慢)写入数据库即可(较快)从数据结构。这在具有外部数据库的大型系统中并不少见。尽管任何比标准地图数据结构更复杂的东西都可能会使您的缓存过于复杂,并表明您的设计存在更大的问题。


那里的内容听起来像是一个面试问题,他们可能期待一个数据结构解决方案,而只是说“使用数据库”可能会遭到反对。但是,如果这是一个系统设计问题,您几乎肯定需要在设计中包含某种数据库,而不是自己关心数据结构。

【讨论】:

  • 所以如果我想要永久存储,我应该使用数据库...否则d.slog 很好!!????
  • 正如我在回答中所写的那样 - 如果您只想记录某些内容(如果有的话,很少会被读取),那么日志文件就可以了。如果您很高兴只在内存中拥有一些东西,而没有复杂的索引,那么数据结构就可以了。对于其他一切,您可能想要使用数据库。
  • 嗯……好的……知道了……谢谢小伙子!!!在 stackoverflow 上等待答案的最长等待时间! :)
  • 哈哈......不,伙计......这些是我在网站上浏览的一些随机问题(我猜是 geekfoegeeks)......即使我想到了数据结构...但是你知道的朋友...总是让你感到困惑! :D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-01
  • 1970-01-01
  • 2017-07-22
  • 2011-01-15
  • 2013-06-11
  • 2013-08-12
  • 1970-01-01
相关资源
最近更新 更多