シャーディングの概要
シャーディングとは、データベースの負荷分散の仕組みの一つです。
データベースのデータを、ある法則により完全に2つに分けます。
具体例
ツイートのデータベースを考えます。データベースを
- ユーザーA, B 用のデータベース
- ユーザーC, D 用のデータベース
と分けます。
メリットとデメリット
ユーザーAのページを表示する時には、左のデータベースを見ればよく、 ユーザーCのページを表示する時には、右のデータベースを見れば良いので、DBの負荷が半分になります。(メリット)
ただし、ツイート検索の時は両方のDBを検索する必要があります。(デメリット)
完全に負荷が半分になるわけではないですが、うまく分割することで負荷を半分に近づけることができます。
レプリケーションと異なり、更新クエリの負荷も分散などのメリットがあります。