どのように機能するか
"What is it? It's it" - Epic, Faith No More
Navicat 16でのテーブルスペースの操作に関するこのシリーズへようこそ。パート1では、回復可能性、テーブルの追加の容易さ、自動ストレージ管理、パフォーマンスやメモリ使用率を向上させるためのバッファプール内のデータの分離機能など、テーブルスペースによって提供されるいくつかの利点を紹介しました。この2回目の記事では、テーブルスペースとは何か、それらがどのように機能するか、様々なリレーショナルデータベース製品に見られるデフォルトのテーブルスペースの種類について詳しく説明します。このシリーズの次の最終回では、Navicat 16でテーブルスペースを管理する方法に焦点を当てます。
コンテナとしてのテーブルスペース
テーブルスペースはコンテナと考えることができます。これらは、ディレクトリ名、デバイス名、またはファイル名です。1つのテーブルスペースに複数のコンテナを含めることができます。また、(1つ以上のテーブルスペースから)複数のコンテナを同じ物理ストレージデバイス上に作成することは可能ですが、作成する各コンテナが異なるストレージデバイスを使用する場合に最高のパフォーマンスが得られます。次の図は、データベース内のテーブルとテーブルスペースの関係を示しています:
テーブルスペースとデータベースマネージャー
データベースマネージャーの役割は、コンテナ間でデータの負荷を分散することです。その結果、全てのコンテナは多かれ少なかれデータを保存するために使用されます。同時に、データベースマネージャーは常に最初のコンテナにテーブルデータの格納を開始するとは限りません。別のコンテナを使用する前にデータベースマネージャーがコンテナに書き込むページの数は、"エクステントサイズ"と呼ばれます。
次の図は、エクステントサイズを含む、テーブルスペースのコンポーネントを示しています:
デフォルトのテーブルスペース
ほとんどのリレーショナルデータベースには、独自の組み込みテーブルスペースが付属しています。以下にいくつかの例を示します:
Oracle
Oracleには、次のデフォルトのテーブルスペースが付属しています:
- SYSTEMとSYSAUXテーブルスペースには、データディクショナリテーブルなどのシステム生成オブジェクトが格納されます。これらのテーブルスペースにオブジェクトを
- USERSテーブルスペースは、アドホックユーザーにとって便利です。
- TUNDOTBS1はUNDOデータを保持します。
- ⦁ TEMPは、ソート、ハッシュ、およびラージオブジェクト処理の操作の中間結果を格納するために使用される一時テーブルスペースです。
MySQL
InnoDBエンジンのみが次のテーブルスペースをサポートしています:
- Systemテーブルスペース
- File-Per-Tableテーブルスペース
- Undoテーブルスペース
DB2
新しいデータベースを作成すると、データベースマネージャーはデータベースのデフォルトのテーブルスペースをいくつか作成します。これらのテーブルスペースは、ユーザーおよび一時データのストレージとして使用されます。次に示すように、各データベースには少なくとも3つのテーブルスペースが含まれている必要があります:
- Catalogテーブルスペース
- Userテーブルスペース
- Temporaryテーブルスペース
今後
これで、テーブルスペースに関する2回目の記事は終了です。今回の記事では、テーブルスペースとは何か、それらがどのように機能するか、様々なリレーショナルデータベース製品に見られるデフォルトのテーブルスペースの種類について、いくつかの情報を提供しました。シリーズの次の最終回では、Navicat 16でテーブルスペースを管理する方法に焦点を当てます。