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