読み方: しゃーでぃんぐ
1行定義
大規模データベースを複数のサーバー(シャード)に水平分割して分散格納する技術。単一サーバーの限界を超えるスケールアウトを実現する
詳細解説
シャーディング(Sharding)は、大規模なデータベースのデータを複数のサーバー(各サーバーを「シャード」と呼ぶ)に水平分割(行単位で分散)して格納・管理するデータベースのスケーリング手法です。単一のデータベースサーバーのストレージ・CPU・メモリ限界を超えるデータ量・クエリ量を処理するために使われます。シャーディングの仕組みはシャードキー(データをどのシャードに配置するかを決める基準となる列・例:ユーザーIDや地域コード)によってデータを分割します。シャーディング方式の種類はレンジシャーディング(ユーザーID 1〜10000はシャード1・10001〜20000はシャード2)・ハッシュシャーディング(ユーザーIDのハッシュ値でシャードを決定・均等分散しやすい)・ディレクトリシャーディング(どのデータがどのシャードにあるかを別テーブルで管理)があります。シャーディングのメリットは水平スケールアウト(シャード(サーバー)を追加するだけでDB容量・性能が向上する)・各シャードが独立して動作するため高い可用性・並列クエリによる性能向上です。シャーディングのデメリット・課題はクロスシャードクエリ(複数シャードをまたぐ結合・集計が困難)・シャード間でのデータ再配分(リシャーディング)がコスト大・トランザクションの一貫性確保が複雑(2相コミットが必要)・シャードキーの設計を誤ると特定シャードに負荷集中(ホットスポット)します。MongoDBやCassandraはシャーディングを標準サポートします。ITパスポートでは「シャーディングの定義」「水平分割と垂直分割の違い」「スケールアウトとの関係」「シャードキーの役割」が出題されます。
ITパスポートでの出題ポイント
- データを複数サーバー(シャード)に水平分割して格納するスケールアウト手法
- シャードキーでどのシャードにデータを配置するか決定
- ハッシュシャーディング(均等分散)・レンジシャーディング(範囲分割)
- クロスシャードクエリが困難。ホットスポット(特定シャードへの偏り)に注意
関連用語
- レプリケーション データベース
- NoSQL データベース
- KVS(キーバリューストア) データベース
- 2相コミット データベース
- リレーショナルDB(RDB) データベース
「シャーディング」の過去問を解いて理解を定着
合格ナビでは IPA 公式 600問 + 3段階の解説(初級・標準・上級) で「○○とは?」をその場で深掘りできます。
シラバス 6.5 準拠 / 最終更新: 2026-05-26
