0
votes

Some context:

I'm using a db.m3.xlarge(4 cpus, 15 GB ram, gp2 type, 750GB ebs) RDS instance on AWS.

It provides 2250 IOPS(can burst to 3000 IOPS which can last up to 30 mins).

Currently, I have a large table with 170M rows, total size is 20GB, with multi secondary indexes, index size is 40GB in total, it increased 20M rows one month.

Question:

Every query can hit index. Current performance is okay for me, slowlog rate is less than 0.2% a month.

But I'm not sure whether MySQL (or rds) has some potential performance issue with large table. I expect this table will have more than 400M rows in one year.

  • Will the query performance decline at some point with large index?
  • Any one have similar tables and did you come to some problems?

It's okay for me to upgrade to a large database on RDS or change to provisioned IOPS instance type which means scale up. Scale out(which means sharding) in my environment is very complex, I need to get some buffer time if sharding is the only way in recent years.

1

1 Answers

0
votes

A good approach for maintenance will be partitioning the table. That will allow you to archive/remove old data easily.

If you can split horizontally, that would be the most frequent fix.