MERGE ストレージ エンジンは、MyISAM テーブルのグループを論理ユニットとして扱い、同時にクエリを実行できるようにします。 MERGE データ テーブル構造を構成する各メンバー MyISAM データ テーブルは、まったく同じテーブル構造を持つ必要があります。各メンバー テーブルの列は同じ名前とタイプで同じ順序で定義する必要があり、インデックスも同じ順序と方法で定義する必要があります。複数のログ データ テーブルがあり、各テーブルに過去数年間の各年のログ エントリが含まれているとします。定義は次のとおりです。YY は年を表します。 テーブル log_YY を作成します ( dt DATETIME NULLではありません、 情報 VARCHAR(100) NOT NULL、 インデックス(dt) )エンジン = MyISAM; 現在のログ データ テーブル セットに log_2004、log_2005、log_2006、および log_2007 が含まれていると仮定します。次に示すように MERGE データ テーブルを作成し、それらを論理単位にグループ化できます。 テーブル log_merge を作成します ( dt DATETIME NULLではありません、 情報 VARCHAR(100) NOT NULL、 インデックス(dt) ) ENGINE = MERGE UNION = (log_2004、log_2005、log_2006、log_2007); ENGINE オプションの値は MERGE である必要があり、UNION オプションには、この MERGE テーブルに含まれる関連テーブルがリストされます。この MERGE が作成されると、他のデータ テーブルと同様にクエリを実行できます。ただし、各クエリは各メンバー データ テーブルに対して同時に実行されます。次のクエリを使用すると、上記のログ データ テーブル内のデータ行の合計数を知ることができます。 log_mergeからCOUNT(*)を選択します。 次のクエリは、各年の各年にログ エントリがいくつあるかを判断するために使用されます。 YEAR(dt) AS y、COUNT(*) AS エントリ FROM log_merge GROUP BY y; を選択します。 MERGE テーブルでは、複数のクエリを発行せずに複数のテーブルを同時に参照することが容易になるだけでなく、次のような利便性も提供されます。 1) MERGE テーブルを使用すると、各 MyISAM テーブルで許可されている最大長を超えるサイズの論理ユニットを作成できます。 2) 圧縮されたデータ テーブルは MERGE データ テーブルに含まれます。たとえば、ある年が過ぎると、対応するログ ファイルにレコードを追加することはなくなるため、myisampack ツールを使用してログ ファイルを圧縮してスペースを節約できます。また、MERGE テーブルは通常どおり機能します。 3) MERGE データ テーブルは、DELETE および UPDATE 操作もサポートします。 INSERT 操作は、MySQL が新しいデータ行をどのメンバー テーブルに挿入するかを知る必要があるため、より面倒です。 MERGE テーブルの定義には、INSERT_METHOD オプションを含めることができます。このオプションの可能な値は NO、FIRST、LAST です。これらはそれぞれ、INSERT 操作が禁止され、新しいデータ行が現在の UNION オプションにリストされている最初のテーブルまたは最後のテーブルに挿入されることを意味します。たとえば、次の定義では、log_merge テーブルに対する INSERT 操作を、UNION オプションにリストされている最後のテーブルである log_2007 テーブルに対する INSERT として扱います。 テーブル log_merge を作成します ( dt DATETIME NULLではありません、 情報 VARCHAR(100) NOT NULL、 インデックス(dt) ) ENGINE = MERGE UNION = (log_2004、log_2005、log_2006、log_2007) INSERT_METHOD = LAST; 同じテーブル構造を持つ新しいメンバー テーブル log_2009 を作成し、log_merge テーブルを変更して log_2009 を含めます。log_2009: CREATE TABLE log_2009 LIKE log_2008; // 古いテーブルに基づいて新しいテーブルを作成します ALTER TABLE log_merge UNION = (log_2004, log_2005, log_2006,log_2007,log_2008,log_2009); 以下もご興味があるかもしれません:
|
<<: Centos8 システムの VMware インストール チュートリアル図 (中国語グラフィカル モード)
>>: ミニプログラム開発ツールのソースコードからの基本実装の分析
目次導入js のイテレータはどのように見えるか反復プロトコル反復可能なプロトコルイテレータプロトコル...
Kubernetes を学習するときは、Kubernetes 環境で練習する必要があります。ただし、...
多くの場合、ホームページを作成するときに、Web ページ ヘッダー属性の設定を無視します。 Web ...
MySQL x64 はインストーラーを提供していません、インストーラーを提供していません、インストー...
この記事では、JavaScriptキャンバスで流星の特殊効果を表示するための具体的なコードを参考まで...
チーム開発のプロセスでは、プロジェクトの安定性、コードの効率性、管理の利便性のために、内部開発および...
1. Iframe タグの使用<br />Iframe については、「忘れられた隅」に放...
表示する svg 画像を追加すると、React はファイルが見つからないというメッセージを表示します...
目次序文スタイルローダーCSSローダーsassローダーpostcssローダーバベルローダーtsローダ...
この記事では、ボトムクエリ機能を実装するためのVueの具体的なコードを例として紹介します。具体的な内...
目次序文ローカルストレージの使用シナリオ使用上の問題解決機能性有効期限を追加データ暗号化を追加する命...
まず、MySQL のバージョンについて説明します。 mysql> バージョンを選択します();...
<br />インターネット上の無数の情報は基本的に HTML ドキュメントで構成されてお...
目次1. コアコマンド2. 共通コマンド3. コアコマンドの詳細な説明3.1、ps補助3.2 トップ...
解凍したフォルダ C:\web\mysql-8.0.11 を開き、フォルダ内に my.ini 構成フ...