【发布时间】:2011-10-13 17:17:54
【问题描述】:
我阅读了许多关于 Amazon EC2 与 Microsoft Azure(以及 Google 的 App Engine)优缺点的博客和文章。但是,我正在尝试决定哪个更适合我的特殊情况。
我有一个数据集 - 可以被认为是格式的标准表:
[id] [name] [d0] [d1] [d2] .. [d63]
---------------------------------------
0 Name1 0.43 -0.22 0.11 -0.81
1 Name2 0.23 0.65 0.62 0.41
2 Name3 -0.13 -0.23 0.17 0.00
...
N NameN 0.43 -0.23 0.12 0.01
我最终想做的事情(尽管我最终选择了堆栈)相当于SQL SELECT 声明,类似于:
SELECT name FROM [table] WHERE (d0*QueryParameter1) + (d1*QueryParameter1) +(d2*QueryParameter2) + ... + (dN*QueryParameterN) < 0.5
其中QueryParameter1,2,N 是运行时提供的参数,每次运行查询时都会更改(因此缓存是不可能的)。
我主要关心的是查询速度,所以我想知道哪个云堆栈选项可以提供最快的查询结果。
我可以通过多种方式做到这一点:
- (1) 使用 SQL Azure,就像上面的查询一样。我已经尝试过这种方法,并且查询可能会像预期的那样很慢,因为 SQL 只给你一个实例。我可以启动多个 SQL 实例并对数据进行分片,但这很快就会变得非常昂贵。
- (2) 使用 Azure 存储表。 Blogger 声称存储表总体上更快,但对于我的查询需求,这仍然是这种情况吗?
- (3) 使用 EC2 并使用 MySQL 启动多个实例,可能会将分片合并到新实例中(但成本会增加)。
- (4) 将 EC2 与 MongoDB 一起使用,据我了解,它比
MySQL快。同样,这可能取决于查询的类型。 - (5) Google AppEngine。我不太确定 GAE 如何使用这种查询结构,但我想这就是我寻找意见的原因。
我想找到最佳的堆栈组合来优化我的特定需求(上面的伪SQL 查询概述了)。
有人有这方面的经验吗? 哪个堆栈选项会导致在WHERE 子句中包含许多数学运算符的最快查询?
干杯, 布雷特
【问题讨论】:
标签: php .net azure amazon-ec2 cloud-hosting