首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON数据存储

JSON数据存储
EN

Stack Overflow用户
提问于 2014-07-01 09:47:02
回答 2查看 878关注 0票数 1

我需要一个每15分钟运行一次的服务来生成“最新”的JSON,以便我们的AJAX服务消费。我们想用这个JSON来进行度量分析,图表,所有的爵士乐。

每15分钟运行一次的理由是,JSON生成的时间很长--查询至少需要45-60秒才能完成。预计随着申请需求的增加,这一数字将增加。

编辑:我们从数据库中提取所有数据。我们已经建立了一个庞大的关系数据库。在一个快速、高效的时间内为我们的网络用户获取数据是绝对必要的。因此,在数据库中查询所有我们需要的度量数据是不令人满意的,因为这需要太长时间。

编辑2数据需要每15分钟完全再生一次。JSON数据需要几乎即时可用。我们并不关心后台服务是否需要很长时间,只要它每15分钟生成一次JSON。

问题是,我不确定如何存储这个JSON。将至少有30-40个单独的JSON对象生成并序列化到字符串以进行传输。我不知道该如何存储这些字符串。而且,这30-40只会随着时间的推移而增加。我们也有生成JSON的预先设定的时间周期,即1天,1周,1个月,3个月,6个月,1年,2年。

我考虑过一个平面数据库表,尽管我不喜欢有几十个列和只有一行的表(在我看来,这似乎不对)。我想知道是否有可能在服务器上生成某种类型的"data.json“文件,在必要时这些服务会从中提取数据,但这有什么缺点吗?它能被缓存吗?(缓存会破坏这一点)。

还有其他方法可用吗?专家能给出一个可靠的意见吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-02 07:25:02

由于数据是静态的,而不是动态生成的,所以我建议将它们存储为文本文件。它速度快,简单,音阶也很好。对旧数据进行存档很容易,如果不需要历史记录,也可以简单地覆盖旧文件。

为了避免缓存json文件,您可以在客户端完成它

代码语言:javascript
复制
$.ajax({ cache: false })

或者,您可以在服务文件时在报头服务器端执行此操作。在这里,您还可以将缓存时间设置为15分钟,以尽量减少服务器上的负载。如何做到这一点,取决于您正在使用的技术。

票数 1
EN

Stack Overflow用户

发布于 2014-07-01 09:54:25

我认为,通过查看其他大型公司的API (Tumblr.、Facebook等),您可以将此示例作为数据的唯一来源。

但是,我想向您说明,使用Database存储数据要比用JSON存储数据更有效。

将数据存储在文件中将要求您创建自己的插件来处理文件中的数据,以检测数据是否正常,用户的输入是否正常,数据是否匹配,如果匹配,其他哪些数据可以与其相关。那将是为你编写代码的好时机。另一方面,如果使用数据库,则只需选择所需的行和列,就可以对返回的数据生成JSON字符串,然后将其作为JSON对象返回给客户端。这就是你想要的。

使用数据库,为您将要使用的每个可能的JSON对象创建一个表。像这样

代码语言:javascript
复制
ObjId | ObjName | ObjProperty
1     | User    | Employee
2     | User    | Client

这是给您的示例表。一旦你保存完这些数据。可以使用简单的SELECT语句获取数据,如下所示

代码语言:javascript
复制
SELECT * FROM table_name WHERE ObjId = 1

现在,第一行将返回给您。对其进行字符串化,然后将其作为字符串返回给客户端以进行处理。

Objects/JSON/stringify

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

https://stackoverflow.com/questions/24507190

复制
相关文章

相似问题

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