Database Sharding with MySQL Fabric

Why do we shard? How does sharding work? What are the different ways I can shard my database? This whitepaper goes through some of the theory behind sharding. It also discusses three different tools which are designed to help users shard their MySQL databases. And last but not least, it shows you how to set up a sharded MySQL setup based on MySQL Fabric and ProxySQL.

Get the whitepaper

Introducton

Why do we shard? How does sharding work? What are the different ways I can shard my database? This whitepaper goes through some of the theory behind sharding. It also discusses three different tools which are designed to help users shard their MySQL databases. And last but not least, it shows you how to set up a sharded MySQL setup based on MySQL Fabric and ProxySQL.

Table of contents

  • 1. Why Sharding?
  • 2. How does Sharding work?
    • 2.1. Functional sharding
    • 2.2. Expression-based sharding
    • 2.3. Metadata-based sharding
  • 3. Sharding solutions
    • 3.1. Vitess
      • 3.1.1. Tablets
      • 3.1.2. How sharding works in Vitess?
      • 3.1.3. Migration into Vitess cluster
    • 3.2. MySQL Fabric
      • 3.2.1. High availability in MySQL Fabric
      • 3.2.2. Scaling out with MySQL Fabric
      • 3.2.3. Query routing in MySQL Fabric
  • 4. Migrating into sharded environment with MySQL Fabric
    • 4.1. Environment overview
    • 4.2. Setting up MySQL Fabric
      • 4.2.1. Installation
      • 4.2.2. Initial setup
      • 4.2.3. Setting up global replication group
      • 4.2.4. Define shard mappings
      • 4.2.5. Creating shards
    • 4.3. Setting up MySQL Router
      • 4.3.1. Installation of MySQL Router
      • 4.3.2. Configuring MySQL Router
    • 4.4. Configuring ProxySQL for sharding
      • 4.4.1. Configuring hostgroups
      • 4.4.2. Configuring query rules
      • 4.4.3. Testing of query rules
    • 4.5. Cutover process
      • 4.5.1. Preparations
      • 4.5.2. Cutover
      • 4.5.3. Cleanup
    • 4.6. Typical operations in MySQL Fabric sharded environment
      • 4.6.1. Add node to shard
      • 4.6.2. Remove node from a shard
      • 4.6.3. Promote a secondary node in a shard
      • 4.6.4. Move shard to a different high availability group
      • 4.6.5. Splitting the shard
    • 4.7. High availability aspect
    • 4.8. Summary
ClusterControl
The only management system you’ll ever need to take control of your open source database infrastructure.