貴裕パーティショニングとはデータを複数に分割して格納することです。データを分割することにより、性能や運用性が向上し、故障の影響を局所化することができます。巨大なデータを扱う場合にはパーティショニング機能を利用することも検討してみてください。この記事ではパーティショニングの概要と用途について説明しています。使い方』を参照してください。パーティショニングの用途パーティショニングには大きく分けて「テーブル間の分割」「ノード間の分割」の2つがあります。この記事では主にテーブル間の分割を扱います。巨大なテーブルを複数のテーブルに分割します。複数のパーティションを1つのテーブルとして見せる機能を持っており、この機能を使うとアプリケーションからはテーブルがどのように分割されているかを意識する必要が無くなります。この記事ではこちらを扱います。巨大なデータベースを複数のノードに分割します。複数台のノードを使うクラスタ構成を取ることになります。使うと実現が容易になります。こちらはこの記事では直接は扱いませんが、分割に関する基本的な考え方は参考になると思います。(範囲)」「リスト」「ハッシュ」の3種類です。(複合)」分割が用意されている場合もあります。固定機能としては用意されていません。ごとに分割する方法です。パーティションそれぞれが互いに重ならないような範囲を受け持ち、その範囲に収まるデータを格納します。利用例としては、履歴を蓄積するテーブルを日や月単位で分割することがあります。最近のデータにはアクセスが多く、古いデータにはアクセスが少ない場合が多いと思いますが、タイムスタンプ列に基づいて分割することでアクセスの多い最近のデータのみを選択的にキャッシュできることが魅力です。値を選ぶ列がある場合に、その値に基づいて分割を行います。それぞれのパーティションは1つまたは複数の選択肢を受け持つことになります。パーティションごとに集計が必要な場合にアクセス範囲を絞れるので有効です。利用例としては、地域IDに基づく分割があります。パーティション間の偏りが生じやすいことに注意してください。都道府県であれば最大47個に分割することができますが、多くの場合「東京都」パーティションは他県と比べてデータが大きくなるでしょう。基づいて各パーティションに均等に分配します。整数を返すハッシュ関数を定義し、その返値に基づいて分割を行います。作成し、ディスク間で均等になるようにデータを配置したい場合があります。1つのテーブルを、複数の表領域をまたがるように配置することはできませんが、パーティショニングを行うことで似たような状態を実現できます。行うテーブルでは、テーブルの末尾にアクセスが集中するためロック競合が発生する場合があります。ハッシュ分割を行うことで実質的に「複数のテーブル末尾」を作ることができ、アクセスを分散するためにも利用されます。ハッシュ・パーティショニングテーブル・パーティショニングの利点と欠点パーティショニングにはデータを分割できる利点がありますが、その一方、複数のパーティションを完全に透過的には扱えない欠点もあります。パーティショニングの利点と欠点を整理しますので、採用する際の参考にしてください。パーティショニングの利点データを分割することで性能面や管理面に利点があります。データベースのサイズがサーバの搭載メモリよりも大きい場合に効果が期待できます。検索範囲の絞込み絞り込み条件がパーティションの分割条件と一致する場合、条件に合わないパーティションは早期の段階で処理対象から外されます。そのため無駄な検索が行われず性能が向上します。月単位で分割している場合での、月ごとの集計処理などで有効です。頻繁にアクセスするデータとあまり使わないデータを分離でき、頻繁にアクセスするデータを格納するパーティションを優先してキャッシュに保持することができます。ため、アクセス頻度が異なる行が同一ページ上にあると、価値の低い行もキャッシュしてしまうのです。