この記事では、Mysql の MERGE ストレージ エンジンについて説明します (コード例)。必要な方は参考にしていただければ幸いです。
MERGE ストレージ エンジンは、一連の MyISAM データ テーブルを論理ユニットとして扱い、それらを同時にクエリできるようにします。 MERGE データ テーブル構造を構成する MyISAM データ テーブルの各メンバーは、まったく同じテーブル構造を持つ必要があります。各メンバー データ テーブルのデータ列は、同じ名前と型で同じ順序で定義する必要があり、インデックスも同じ順序で同じ方法で定義する必要があります。複数のログ データ テーブルがあり、その内容が過去数年間の各年のログ レコード アイテムであるとします。その定義は次のとおりです。YY は年を表します (推奨コース: MySQL チュートリアル )
CREATE TABLE log_YY ( dt DATETIME NOT NULL, info VARCHAR(100) NOT NULL, INDEX (dt) ) ENGINE = MyISAM;
現在のログ データ テーブルのコレクションに log_2004、log_2005、log_2006、log_2007 が含まれているとします。次に示すように MERGE データ テーブルを作成して、それらを 1 つの論理ユニットにグループ化できます。
CREATE TABLE log_merge ( dt DATETIME NOT NULL, info VARCHAR(100) NOT NULL, INDEX(dt) ) ENGINE = MERGE UNION = (log_2004, log_2005, log_2006, log_2007);
ENGINE オプション値は MERGE である必要があります。UNION オプションは、この MERGE データ テーブルに含まれる関連データ テーブルをリストします。この MERGE を作成した後は、他のデータ テーブルと同様にクエリを実行できます。ただし、各クエリは、それを構成する各メンバー データ テーブルに同時に影響します。次のクエリを使用すると、上記のログ データ テーブル内のデータ行の総数を知ることができます:
SELECT COUNT(*)FROM log_merge;
次のクエリを使用して、過去数年間のそれぞれに存在するログ レコード エントリの数を確認します。 ##
SELECT YEAR(dt) AS y, COUNT(*) AS entries FROM log_merge GROUP BY y;
2) 圧縮されたデータ テーブルが MERGE データ テーブルに含まれます。たとえば、特定の年の終わり以降は、対応するログ ファイルにレコードを追加する必要がなくなるため、myisampack ツールを使用してログ ファイルを圧縮して領域を節約でき、MERGE データ テーブルは引き続き通常どおり機能します。 3 )、MERGE データ テーブルは DELETE および UPDATE 操作もサポートします。 MySQL は新しいデータ行をどのメンバー テーブルに挿入する必要があるかを知る必要があるため、INSERT 操作はさらに面倒です。 MERGE データ テーブルの定義には INSERT_METHOD オプションを含めることができます。このオプションの値は NO、FIRST、LAST です。これらの意味は、INSERT 操作が禁止され、新しいデータ行が現在の UNION オプションに挿入されることです。 . 最初のデータ テーブルまたは最後のデータ テーブル。たとえば、次の定義は、log_merge テーブルに対する INSERT 操作を、UNION オプションにリストされている最後のテーブルである log_2007 テーブルに対する INSERT であるかのように扱います。
CREATE TABLE log_merge( dt DATETIME NOT NULL, info VARCHAR(100) NOT NULL, INDEX(dt) ) ENGINE = MERGE UNION = (log_2004, log_2005, log_2006, log_2007) INSERT_METHOD = LAST;
CREATE TABLE log_2009 LIKE log_2008; //根据旧表创建新表 ALTER TABLE log_merge UNION = (log_2004, log_2005, log_2006,log_2007,log_2008,log_2009);
以上がMysql の MERGE ストレージ エンジンの概要 (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。