CREATE TABLE comments ( id BIGINT PRIMARY KEY, post_id BIGINT NOT NULL REFERENCES posts (id), author_id BIGINT NOT NULL, content TEXT NOT NULL, like_count INT DEFAULT 0, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), deleted_at TIMESTAMPTZ ); -- 基础索引 CREATE INDEX idx_comments_post ON comments (post_id, created_at) WHERE deleted_at IS NULL; CREATE INDEX idx_comments_author ON comments (author_id, created_at DESC) WHERE deleted_at IS NULL; -- 三元组索引用于评论内容搜索 CREATE INDEX idx_comments_content_trgm ON comments USING gin (content gin_trgm_ops) WHERE deleted_at IS NULL; -- 热门评论索引 CREATE INDEX idx_comments_post_likes ON comments (post_id, like_count DESC, created_at) WHERE deleted_at IS NULL;