As posted here I started to think about possible ways to implement database sharding/partitioning.
I finally found the time to start prototyping a MySQL Proxy based solution that would allow you to analyze and rewrite queries to direct them to different databases. So this would going to be a nearly 100% transparent solution (some queries are impossible to support due to the nature of having multiple tables in different locations).
How does it work?
The main goal is to split up mysql tables and optionally put each of the resulting partitions on different mysql servers.
For now I concentrate on splitting up big tables into smaller ones within the same database. Distribution of these tables (i.e. partitions) over multiple databases would be the final goal and a lot more challenging task (think of …[Read more]