首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何存储信息?数据库与数据结构与日志文件

如何存储信息?数据库与数据结构与日志文件
EN

Stack Overflow用户
提问于 2014-03-17 06:00:11
回答 1查看 2.7K关注 0票数 2

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

有每个n站点都有n页面,而访问用户sites....each访问的n用户必须保存并保存他/她访问过的页面(无论是在数据库还是日志文件中都没有提到,所以这取决于开发人员)

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

所以我们有三种方法来存储任何东西.log files data-structure database

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

真正的区别是什么?

我知道这个问题主要是基于意见的,但在浏览时没有得到具体的结果!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-17 06:34:48

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

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

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

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

你所拥有的听起来像是一个面试问题,他们可能会期待一个数据结构的解决方案,而简单地说“使用数据库”可能会被拒绝。但是,如果这是一个系统设计问题,您几乎肯定需要在设计中包含某种数据库,而不是考虑数据结构。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22447867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档