在过去的几年里,我设计了几个应用程序,然后不断改进性能和可伸缩性方面,我对 MySQL 领域感到很自在。我也有一些使用 memcached 为经常查询的结果集提供应用程序端加速的经验。最近,我将 Amazon SDB 作为我的主要“数据库”用于电子商务实验。
简单地说,我想到使用 SDB 服务的一个快速理由是,使用无模式数据库结构可以让我专注于我的项目的逻辑问题,并在我的数据存储中快速积累内容。也就是说,不必担心事先设置和规范化产品属性的所有可能排列;只需开始加载产品,SDB 就会记住所有可用的内容。
现在我已经设法完成了项目的前几次迭代,并且我需要为数据设置简单的接口,我遇到了我认为使用 MySQL 理所当然的问题。例如:在 select 语句中分组并限制语法以查询“项目 50 到 100”。使用 SDB 的无模式架构获得的易用性优势,我失去了查询/循环仅包含 1800 多个项目的结果集的性能损失。
现在我正在阅读诸如东京内阁之类的项目,这些项目正在扩展内存中键值存储的概念,以更快的速度提供伪关系功能(我在某处读到的 14 倍)。
我的问题:作为应用程序设计师/开发人员,我是否可以通过一些基本指南或启发式方法来评估哪种数据库技术最适合我的项目的每个阶段。
例如:在原型设计阶段,应用程序的逻辑/技术未知数使数据结构变得流畅:使用 SDB。在更成熟的阶段,优先考虑用户交付,使用传统工具,您不必花费开发时间编写排序、分组或分页逻辑。
非常感谢使用这些工具的实际经验。
谢谢!
沙希布·R。