【发布时间】:2013-09-06 15:35:06
【问题描述】:
我有一个 mysql 数据库,每天大约有 1.5 亿次插入,保留期约为 60 天。
- 每条记录都以 id 为索引。
- 每次更新如下:
- 查看记录是否存在。如果是,请使用新数据进行更新。
- 或者创建数据。
- 删除 60 天前创建的记录。
我的主要用例如下:
运行一些批量查询。例如:
Select (*) from table where prop=val1 and prop2=val2 etc
将返回大量记录,例如。 1M
以下方法好吗:
- 拥有一个仅在 id 上具有索引的主数据库。保留 60 天。
- 已读取副本数据库。该数据库将在许多列上编入索引
- 所有批量查询都将针对只读副本数据库运行。
这是一个好的解决方案吗?
编辑: 我打算使用 Amazon RDS DB,并在他们的文档中找到了这一点:
Q: Can my Read Replicas only accept database read operations?
只读副本旨在为读取流量提供服务。然而,可能有 是高级用户希望完成数据定义的用例 针对只读副本的语言 (DDL) SQL 语句。例子可能 包括将数据库索引添加到用于 业务报告,无需在相应的索引中添加相同的索引 源数据库实例。如果您希望启用读取以外的操作 对于给定的只读副本,您将需要修改活动数据库 只读副本的参数组,设置“read_only” 参数为“0”。
【问题讨论】:
标签: mysql replication scaling database-replication