📋 インターリーブとは
インターリーブ(Interleave)は、親テーブルと子テーブルのデータを物理的に同じ場所に保存することで、結合クエリのパフォーマンスを劇的に向上させる機能です。
CREATE TABLE Customers (
CustomerId INT64 NOT NULL,
Name STRING(100),
Email STRING(100),
) PRIMARY KEY (CustomerId);
CREATE TABLE Orders (
CustomerId INT64 NOT NULL,
OrderId INT64 NOT NULL,
OrderDate DATE,
TotalAmount FLOAT64,
) PRIMARY KEY (CustomerId, OrderId),
INTERLEAVE IN PARENT Customers ON DELETE CASCADE;
⚡ パフォーマンスへの影響
以下のようなクエリで大きな差が出ます:
SELECT c.Name, o.OrderId, o.TotalAmount
FROM Customers c
JOIN Orders o ON c.CustomerId = o.CustomerId
WHERE c.CustomerId = 123;