哪种是临时保存原始数据的最佳方式? [关闭]
Posted
技术标签:
【中文标题】哪种是临时保存原始数据的最佳方式? [关闭]【英文标题】:Which is best way to hold raw data temporary? [closed] 【发布时间】:2013-11-07 18:56:04 【问题描述】:我正在开发一些分析网络应用程序。每次我需要从数据库中处理的原始数据暂时保存。 那么,暂时保存原始数据的最佳方法是什么。
1) 临时表 2) 缓存 3) 哈希图 4) 查看 5) 实际表 6) 临时文件 7) ....
会有繁重的读写操作。
请提出建议。
【问题讨论】:
您的问题中最明显的遗漏是数据是否将被多个执行线程访问 - 然后引出了这个运行在什么操作系统上以及实现自定义守护程序是否可行的问题。此外,集群中的多个节点是否需要访问数据 - 解决方案必须具有多大的可扩展性......您得到的任何回复都将根据受访者的经验随机猜测 - 不是您问题的解决方案。 撤销赏金并因不清楚而关闭 - 我们需要更多关于您正在做什么的更多信息才能有效地回答这个问题。 【参考方案1】:这取决于您要跟踪的具体内容以及您拥有的数据量。用最简单的术语来说,现有数据库中包含临时信息的表可以做到这一点。另一方面,您可以让 MongoDB 使用 Memcached/Varnish 存储聚合数据,并使用 TTL 缓存整个 HTTP 响应。
干杯
【讨论】:
我只找mysql。 如果您希望将所有内容保存在 mysql 中,请将原始数据表映射到抽象表。运行您的计算,并将它们插入到抽象表中。然后,您的应用就可以查询该表。 我觉得你说的view? 没有。如果您实际处理的是数据,则需要在处理完数据后为其创建一个表。【参考方案2】:我会考虑使用 Redis 或 APC。这些是键值存储,非常适合您存储已处理数据并在会话/请求之间共享数据的目的。
祝你好运!
【讨论】:
【参考方案3】:就个人而言,我会使用 php 会话变量。它保存数据,并在需要时轻松引用。
【讨论】:
我有大量数据要处理,所以会话不是好办法。【参考方案4】:我建议在数据库中使用一个表来保存数据并在之后删除内容
【讨论】:
【参考方案5】:我建议您使用数据库表,因为它会一直存在,直到您将其删除。
session 可能不是一个好的选择,因为如果用户关闭浏览器它会丢失,而且你不能将大量数据存储到 session 中。
【讨论】:
【参考方案6】:临时文件从来都不是一个好的选择,因为它总是容易受到攻击。数据库中的表是存储临时数据的最佳方式,因为如果您确定需要将这些信息保存多长时间,您甚至可以设置截断该表的时间!
【讨论】:
【参考方案7】:我建议您使用缓存解决方案。 我个人使用 APC 处理类似用例的经验非常好。
使用 APC,我能够避免每次需要访问数据时访问数据库的额外开销。它很有用,因为我需要在短时间内多次访问数据然后丢弃它。所以使用 db 解决方案似乎没有那么有效。 此外,它更容易访问 APC,因为数据读/写就像 key => value 一样简单,我想文件读/写解决方案可能需要更复杂的代码。
您需要注意的几件事是,在服务器重启的情况下数据可能会丢失。
【讨论】:
以上是关于哪种是临时保存原始数据的最佳方式? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章