テクノロジ系データベース

シャーディングとは?

読み方: しゃーでぃんぐ
1行定義

大規模データベースを複数のサーバー(シャード)に水平分割して分散格納する技術。単一サーバーの限界を超えるスケールアウトを実現する

詳細解説

シャーディング(Sharding)は、大規模なデータベースのデータを複数のサーバー(各サーバーを「シャード」と呼ぶ)に水平分割(行単位で分散)して格納・管理するデータベースのスケーリング手法です。単一のデータベースサーバーのストレージ・CPU・メモリ限界を超えるデータ量・クエリ量を処理するために使われます。シャーディングの仕組みはシャードキー(データをどのシャードに配置するかを決める基準となる列・例:ユーザーIDや地域コード)によってデータを分割します。シャーディング方式の種類はレンジシャーディング(ユーザーID 1〜10000はシャード1・10001〜20000はシャード2)・ハッシュシャーディング(ユーザーIDのハッシュ値でシャードを決定・均等分散しやすい)・ディレクトリシャーディング(どのデータがどのシャードにあるかを別テーブルで管理)があります。シャーディングのメリットは水平スケールアウト(シャード(サーバー)を追加するだけでDB容量・性能が向上する)・各シャードが独立して動作するため高い可用性・並列クエリによる性能向上です。シャーディングのデメリット・課題はクロスシャードクエリ(複数シャードをまたぐ結合・集計が困難)・シャード間でのデータ再配分(リシャーディング)がコスト大・トランザクションの一貫性確保が複雑(2相コミットが必要)・シャードキーの設計を誤ると特定シャードに負荷集中(ホットスポット)します。MongoDBやCassandraはシャーディングを標準サポートします。ITパスポートでは「シャーディングの定義」「水平分割と垂直分割の違い」「スケールアウトとの関係」「シャードキーの役割」が出題されます。

ITパスポートでの出題ポイント

  • 1データを複数サーバー(シャード)に水平分割して格納するスケールアウト手法
  • 2シャードキーでどのシャードにデータを配置するか決定
  • 3ハッシュシャーディング(均等分散)・レンジシャーディング(範囲分割)
  • 4クロスシャードクエリが困難。ホットスポット(特定シャードへの偏り)に注意

関連用語

レプリケーション
データベース
NoSQL
データベース
KVS(キーバリューストア)
データベース
2相コミット
データベース
リレーショナルDB(RDB)
データベース

シャーディング」の過去問を解いて理解を定着

合格ナビでは IPA 公式 600問 + AI解説 で「○○とは?」をその場で深掘りできます。

シラバス 6.5 準拠 / 最終更新: 2026-05-26