我正在构建一个具有以下特征的webapp:
基本上:非常少的页面有90%的静态信息。一页有客户端工作,可能还有很多JSON的GETting / POSTing。
我使用PHP / Smarty,jQuery和mySQL构建了一个POC。用户详细信息存储在mySQL中,JSON数据也是如此。网页由Smarty在磁盘上缓存。
现在我正在考虑可伸缩性,显而易见的问题是我应该在mySQL中存储经常更改的JSON数据,还是应该使用memcacheDB或其他一些键值存储?您是否会选择简单的mySQL选项或现在引入键值存储,还是等待看是否出现规模问题?实际上,我是否会达到mySQL是瓶颈的程度?
我打算在Slicehost上托管这个,然后根据需要移动它。
答案 0 :(得分:1)
就JSON而言,它没有什么区别:我不知道如何优化该数据的存储。我认为这个问题归结为“用户数据有多复杂?”。如果有一个与RDBMS外键相关联的大规模社交图,并且将这些数据映射到键值存储太困难了,我现在宁愿不花费精力。但是,如果用户数据只是平面配置文件信息,那么在使用太多RDBMS功能之前,我宁愿转移到键值存储,而不是之后。
答案 1 :(得分:1)
问题是,是否会根据这些值进行查找?是否会在数据库级别对特定值进行更新...如果您所做的只是拉动整个字符串并且没有查询或修改的要求,则Serilaized数据或json将更快更有效(存储方式)它
根据您的缩放方式,您可能希望保留键/值结构以及平面数据表示以供查找。
另外,请考虑使用apache AB进行基准测试,并了解更改如何影响并发输出。
祝你好运:)