Scylla DB は、いわゆる「キー プレフィックスの最適化」をセカンダリ インデックスに実装します。これにより、プライマリ キーの一部が指定されている場合にフィルタリングが不要になります。SELECT * FROM A WHERE a = 'a' AND b = 'a' AND d = 'a';
たとえば、 tableで実行できますA
。
CREATE TABLE A (
a text,
b text,
c text,
d text,
PRIMARY KEY(a,b,c)
);
CREATE INDEX A_index ON A (d);
A.d
ただし、クラスタリング列の場合は機能しません。たとえば、B
下の表のように。
CREATE TABLE B (
a text,
b text,
c text,
d text,
PRIMARY KEY(a,b,c,d)
);
CREATE INDEX B_index ON B (d);
上記の SELECT クエリは次のエラーで失敗します。
InvalidRequest: サーバーからのエラー: code=2200 [無効なクエリ] message="このクエリを実行できません。データ フィルタリングが必要なため、パフォーマンスが予測できない可能性があります。パフォーマンスが予測できないにもかかわらずこのクエリを実行する場合は、ALLOW FILTERING を使用してください"
スキュラDB 3.0.1。