【问题标题】:Worrying about scalability of a new site担心新站点的可扩展性
【发布时间】:2010-11-30 17:40:35
【问题描述】:

我正在构建一个具有以下特征的 webapp:

  1. 只有少量页面,首页,联系我们,关于,注册等。
  2. 每个用户都有一个基于 jquery 的页面,允许他们拖放/操作 DOM 元素。
  3. 当用户完成对元素的操作后,他们可以点击保存,元素会通过 JSON 发送到服务器上的 PHP 脚本。他们还可以加载以前保存的 JSON。

本质上是这样:很少有页面包含 90% 的静态信息。一页包含客户端工作,可能有大量 JSON 的 GET/POST。

我已经使用 PHP/Smarty、jQuery 和 mySQL 构建了一个 POC。用户详细信息存储在 mySQL 中,JSON 数据也是如此。网页由 Smarty 缓存在磁盘上。

现在我正在考虑可扩展性,一个明显的问题是我应该将经常更改的 JSON 数据存储在 mySQL 中,还是应该使用 memcacheDB 或其他键值存储?您会选择简单的 mySQL 选项还是现在引入键值存储,或者您会等着看是否会出现规模问题?我真的会达到 mySQL 成为瓶颈的地步吗?

我打算先在 Slicehost 上托管它,然后在需要时移动它。

【问题讨论】:

    标签: mysql json scalability slicehost memcachedb


    【解决方案1】:

    问题是,是否会根据这些值进行查找?是否会在数据库级别更新特定值...如果您所做的只是提取整个字符串并且不需要查询或修改,序列化数据或 json 将会更快、更高效(存储方式)它。

    但根据您的扩​​展方式,您可能希望保留键/值结构以及平面数据表示以进行查找。

    还可以考虑使用 apache AB 进行一些基准测试,并了解您的更改如何影响并发输出。

    祝你好运:)

    【讨论】:

    • 没有查找,只是直接存储。使用 jQuery 生成 JSON,按原样存储在 mySQL 中,然后从 DB 中检索,发送回客户端,然后 jQuery 遍历 JSON。
    • 那么直接保存 JSON 将是最少的进程使用和更好的存储模型。 (尽管它可能需要更多的空间来保存,但会让您在表中处理更少的行,因此,更小的索引文件和更快的检索)。
    【解决方案2】:

    就 JSON 而言,它不会产生任何影响:我不知道如何优化该数据的存储。我认为问题归结为“用户数据有多复杂?”。如果有一个与 RDBMS 外键相关的庞大社交图,并且很难将该数据映射到键值存储,我宁愿现在不花精力。但是,如果用户数据只是简单的个人资料信息,我宁愿现在转移到键值存储,也不愿稍后再使用太多 RDBMS 功能。

    【讨论】:

    • 感谢您的回复。我总是会在 mySQL 中保存用户数据——它只是简单的配置文件。我主要关心的是使用键/值存储是否会更快地存储+检索包含 JSON 对象的字符串。
    • 嗯。我还没有认真考虑过——我更关注用户个人资料数据。您可以尝试分析...使用纯 JSON 字符串,我不确定为什么键值存储应该明显更快。
    猜你喜欢
    • 1970-01-01
    • 2011-08-22
    • 2011-12-26
    • 1970-01-01
    • 2012-09-25
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    相关资源
    最近更新 更多