如何微调aws r4 aurora mysql数据库

1cklez4t  于 2021-06-15  发布在  Mysql
关注(0)|答案(3)|浏览(471)

我有一个数据库目前在6.5gb,但增长很快。。。
目前在r4l aurora服务器上,15.25g ram,2核cpu
我正在考虑购买一个保留示例以降低成本,但担心如果数据库增长很快,例如在一年内达到15g以上,我将需要一个更大的服务器。
99%的数据是事务历史记录,这个表是迄今为止最大的。它被频繁地写入,但是一旦一行被写入,它就不会经常更改(尽管有时会更改)。
那么几个问题。。。
1) 我应该禁用缓存吗?
2) 我是否可以使用15g ram,即使数据库本身达到(比如说)30g,还是会看到巨大的速度问题
3) 数据库的索引很好,但这能得到改进吗?e、 g.如果(假设)一百万条记录属于一个用户,有没有办法对数据进行分区,以防止其他用户的访问速度减慢?
谢谢

zpqajqem

zpqajqem1#

“我应该禁用缓存吗?”——哪个“缓存”?
“我会看到大量的速度问题吗”--我们需要看到查询,等等。
“数据库索引良好”--如果这意味着您索引了每一列,那么它就没有索引良好。请给我们看看 SHOW CREATE TABLE 还有一些重要的问题。
“分区”--除了少数例外,分区并不能提高mysql表的速度。同样,我们需要细节。
“15.25g ram”和“数据库…15g”--数据集的大小比ram大,甚至大得多是很常见的。所以,这对数字不一定能很好地相互比较。
“一百万条记录属于一个用户”--请再说一遍,详细信息。

qnakjoqk

qnakjoqk2#

当引擎将页面抓取到缓冲池中进行页面丢失时,示例的内存就发挥作用了。它并不取决于实际的数据大小(除非在极端情况下,例如,您的记录非常庞大)。经验法则是确保在缓冲池中始终保持工作集的温度,并避免页面被刷新。
如果您的应用程序确实需要接触大量数据,那么理想的方法是为特定类型的查询提供专用副本。这样,您就避免了为了更新查询而交换有效页。aurora现在有了自定义的端点支持,这使得它更易于管理。
如果您需要更具体的指导,您可能需要共享有关您的数据、索引、查询等的详细信息。

pes8fvy9

pes8fvy93#

你应该从统计学上解释数据的增长。这可以通过运行count(*)查询组by created date(year)列来完成。一旦你有了每年的记录数,你就可以了解发生了什么。
现在你可以想出可能的解决办法了
您可以从历史的Angular 删除不再相关的数据,并限制存储空间。
如果有大量的数据,例如blob等,您可以将其目标存储在s3中,并将引用存储到数据库表中
删除任何不需要的表。有时dba会创建临时备份表,并在下班后将它们留在那里。你可以打扫这些table。

相关问题