Primary Key design is an important thing for InnoDB performance,
and choosing a poor PK definition will have an impact on
performance and also write propagation in databases. When this
comes to Aurora, this impact is even worse than you may notice.
In short, we consider a poor definition of a Primary Key in
InnoDB as “anything but quasi sequential values”, which may cause
very random access to data and thus increase the IO dependency.
In this post, I’ll try to demonstrate the potential impact of the
primary key design when running on Aurora, and how a bad design
can lead to a 15x write latency penalty (or more).
The Analysis
Recently I worked on a case where a customer was having issues
with scaling writes in Aurora MySQL. While this is a known
limitation in Aurora considering how the distributed storage
layer syncs out data among all nodes of the cluster, we observed
additional latency occurring when more …
[Read more]