Slide 14
Slide 14 text
テーブル設計: INTERLEAVE
CREATE TABLE Singers(
SingerId INT64 NOT NULL,
FirstName STRING(256),
LastName STRING(256),
SingerInfo BYTES(MAX),
) PRIMARY KEY (SingerId);
CREATE TABLE Albums (
SingerId INT64 NOT NULL,
AlbumId INT64 NOT NULL,
AlbumTitle STRING(256),
) PRIMARY KEY (SingerId, AlbumId), INTERLEAVE IN PARENT Singers
ON DELETE CASCADE;
SELECT
s.*,
ARRAY( SELECT AS STRUCT a.* FROM Albums a WHERE a.SingerId = s.SingerId ) Albums,
FROM
Singers s
WHERE
s.SingerId = @SingerId
物理的に⼀緒に格納
⼀緒に取得する場合、JOINコストがなく⾼速
https://cloud.google.com/spanner/docs/schema-and-data-model?hl=ja
ARRAY(サブクエリで取得)
13