我正在构建一个具有以下特征的网络应用程序:

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

所以本质上是:90% 静态信息的页面很少。一页包含客户端工作,并且可能包含大量 JSON GETting/POSTing。

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

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

我计划首先将其托管在 Slicehost 上,然后在需要时将其移动。

有帮助吗?

解决方案

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

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

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

祝你好运 :)

其他提示

就 JSON 而言,没有什么区别:我不知道如何优化该数据的存储。我认为问题归结为“用户数据有多复杂?”。如果有一个与 RDBMS 外键相关的大量社交图,并且将该数据映射到键值存储太困难,我宁愿现在不花精力。但是,如果用户数据只是平面配置文件信息,我宁愿现在就迁移到键值存储,而不是稍后,在我使用太多 RDBMS 功能之前。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top