This blog was originally published in July 2017 and was updated in August 2023.
It’s a pretty common question around here, so let’s see what we can do about that.
So, What is MySQL Partitioning?
Partitioning is a way in which a database (MySQL in this case) splits its actual data down into separate tables but still gets treated as a single table by the SQL layer.
When partitioning in MySQL, it’s a good idea to find a natural partition key. You want to ensure that table lookups go to the correct partition or group of partitions. This means that all SELECT, UPDATE, and DELETE should include that column in the WHERE clause. Otherwise, the storage engine does a scatter-gather and queries ALL partitions in a UNION that is not concurrent.
Generally, you must add the partition key into the primary key along …[Read more]