【发布时间】:2012-07-02 19:18:45
【问题描述】:
我一直在尽可能多地阅读有关如何编写可扩展 MySQL 架构的信息,但我仍然不确定这是否是个好主意。
无论如何,我将这个项目托管在带有 RDS 的 EC2 上。
在我的数据库中,我有一个核心表,它的写入比读取多(我猜大约 70% 的写入和 30% 的读取)。
但是,当我在表中创建新行时,我需要每 5 秒左右添加一次更新。总的来说,由于每秒将添加/更新多行,这意味着每秒钟左右执行一条 UPDATE 语句。
根据我一直在阅读的内容,MySQL 有一种称为表锁定的东西,当您写入表时会发生这种情况?由于该表也将被大量读取,因此在行上使用 UPDATE 语句会导致过多的开销/锁定吗?
我的选择(据我所知)是:
- 频繁(每秒或更多)对大型表执行 UPDATE 语句
- 有一个暂存表,我可以在其中创建行、更新它们,并在准备好后(大约 20 分钟直到行完成),将行从暂存表传送到主表。
我想避免临时表,因为它让我的用户等待大约 20 分钟才能看到内容,但我想知道这是否是必要的邪恶。
还有其他想法吗?有什么建议吗?
谢谢!
【问题讨论】:
标签: mysql amazon-ec2 scalability amazon-rds