We had an AWS MySQL RDS t3.xlarge instance with 2000 IOPS. Also, I have a cron job written in java which inserts data in a table: it can insert up to 12M rows daily. Since AWS RDS cost is quite high we decided to migrate to AWS Aurora Serverless v1.
But what was surprising for us: the job executed on AWS RDS in ~3 hours but on Aurora Serverless it took ~16 hours.
According to my searches, it is suggested to change parameter values: innodb_flush_log_at_trx_commit (1 -> 0)
and sync_binlog (1 -> 0)
. For Aurora Serverless you can modify innodb_flush_log_at_trx_commit
but sync_binlog
- no. Probably that's why changing innodb_flush_log_at_trx_commit
didn't give any results.
My questions are:
- Why on Aurora Serverless the same job executes almost 3xmore than 5x times slower than on AWS RDS (Although, I understand that t3.xlarge instance with 2000 IOPS is quite powerful)?
- Is there a solution to accelerate Aurora Serverless inserts?
EDIT: Also, there is a similar question