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