mysql - EC2服务器,一个微型实例就够了吗?

标签 mysql amazon-ec2 amazon-web-services instance

我一直在开发一个网站,每小时将大约 1200 万行代码(大约 1GB/数据)导入到 mySQL 数据库中。在查看了不同的 VPS 和亚马逊 ec2 之后,我正在考虑采用最具成本效益的解决方案。

对于网站访问者来说,每月应该只有约 300-600k 页面浏览量(最多 15GB 带宽),在一天中均匀分布。

当我导入数据时,我使用“IN FILE”,它一次导入约 200-350k 行,并且只需要约 1-3 秒。导入通过 Cron Job 运行,每分钟运行 1 次(每天约 1400 次)。

拥有 VPS 更好,还是使用 Amazon EC2 更好?如果我使用 Amazon EC2,CPU 峰值对于微型甚至小型实例是否会太大(我是否需要高 CPU 中型实例)?

如果有人可以分享一些关于 mySQL 在这大约 1-3 秒内实际需要多少 CPU 或 CPU 时间允许多少微实例的见解。

如果我选择 VPS 路线,我将从 http://x10vps.com/self-managed-vps.php 获取 S1 包并根据需要升级到 S3。

最佳答案

如果不了解您正在加载的数据的详细信息,就很难对此说太多。 MySQL是否必须更新表中的索引?一切都已经安排妥当了吗?有多少列,您是否在 LOAD DATA INFILE 语句中执行任何 CPU 密集型操作(例如替换部分字符串)?旧数据是在一段时间后删除,还是应该在应用程序的生命周期内保留所有数据?

话虽如此,听起来单个 Micro 实例可能无法处理这个问题。如果您使用大量 EBS 存储(可能在 RAID 配置中)备份实例,则导入数据应该没问题,但如果该单个实例还负责在如此大的数据集上运行用户查询,则可能不会运行非常顺利。当导入脚本运行时,用户请求最多会出现几秒钟的延迟。根据您的应用程序,这可能会也可能不会被接受。

如果您要对数据运行昂贵的查询,我现在可以说这在单个 Micro 实例上效果不佳:)您可以扩展到更大的实例或根据您的需求,您可能还需要考虑使用 SimpleDB 或类似的 NoSQL 解决方案(尽管这会在导入脚本中使用更多代码,因为您必须每批最多执行 25 个项目的批量放置)。

但这些只是一些一般性的想法。 AWS 实际上为新用户提供了免费使用套餐,让您可以连续运行 EC2 Micro 实例一整年,而无需支付一毛钱,那么为什么不注册一个帐户并运行自己的测试呢?更多详情hereHere有关微型实例如何工作以及它们适合哪些应用程序的一些更一般的信息。

关于mysql - EC2服务器,一个微型实例就够了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10708949/

相关文章:

php - 需要 100 多个条目的下拉菜单的解决方案/替代方案

mysql - 在 postgres 的不同列中获取联合的输出

php - 如何在mysql查询中使用varchar类型的大于运算符

redirect - 如何设置 Beanstalk + Nginx 将 http 重定向到 https?

linux - 无法让 php mail() 在 linux ubuntu 上工作

javascript - 返回函数 JavaScript

amazon-ec2 - 如何为自动扩展创建 VPC 终端节点

mysql - 使用 .zip 和 .sql 将 WordPress 站点恢复到 AWS

node.js - AWS Lambda 错误 - "errorType": "string", "errorMessage": "handled"

amazon-web-services - 在 DynamoDB 中查找平均值和总和?