メインコンテンツまでスキップ
メインコンテンツまでスキップ

テーブルエンジン

テーブルエンジン(テーブルの種類)は、以下を決定します。

  • データがどのように、どこに保存されるか、書き込む場所、読み取る場所。
  • サポートされるクエリとその方法。
  • 同時データアクセス。
  • 存在する場合のインデックスの使用。
  • マルチスレッドリクエスト実行が可能かどうか。
  • データレプリケーションパラメータ。

エンジンファミリー

MergeTree

高負荷タスクに対する最も汎用的で機能的なテーブルエンジン。これらのエンジンに共通する特性は、迅速なデータ挿入と、その後のバックグラウンドでのデータ処理です。MergeTreeファミリーのエンジンは、データレプリケーション(Replicated*バージョンのエンジン)、パーティション、セカンダリデータスキッピングインデックス、その他の機能をサポートしていますが、他のエンジンではサポートされていません。

ファミリー内のエンジン:

MergeTreeエンジン
MergeTree
ReplacingMergeTree
SummingMergeTree
AggregatingMergeTree
CollapsingMergeTree
VersionedCollapsingMergeTree
GraphiteMergeTree

Log

最小限の機能を持つ軽量エンジン。多くの小さなテーブル(約100万行まで)を迅速に書き込み、後で全体として読み取る必要がある場合に最も効果的です。

ファミリー内のエンジン:

Logエンジン
TinyLog
StripeLog
Log

統合エンジン

他のデータストレージおよび処理システムと通信するためのエンジン。

ファミリー内のエンジン:

統合エンジン
ODBC
JDBC
MySQL
MongoDB
Redis
HDFS
S3
Kafka
EmbeddedRocksDB
RabbitMQ
PostgreSQL
S3Queue
TimeSeries

特殊エンジン

ファミリー内のエンジン:

特殊エンジン
Distributed
Dictionary
Merge
Executable
File
Null
Set
Join
URL
View
Memory
Buffer
External Data
GenerateRandom
KeeperMap
FileLog

バーチャルカラム

バーチャルカラムは、エンジンソースコードで定義されたテーブルエンジンの不可欠な属性です。

CREATE TABLEクエリではバーチャルカラムを指定してはいけません。SHOW CREATE TABLEDESCRIBE TABLEクエリの結果にも表示されません。バーチャルカラムは読み取り専用であり、そこにデータを挿入することはできません。

バーチャルカラムからデータを選択するには、その名前をSELECTクエリで指定する必要があります。SELECT *ではバーチャルカラムの値は返されません。

テーブルにテーブルのバーチャルカラムのいずれかと同じ名前のカラムがある場合、バーチャルカラムはアクセスできなくなります。これを行うことはお勧めしません。競合を避けるために、バーチャルカラム名には通常アンダースコアがプレフィックスとして付けられます。