简单的数据库结构(用于在线论坛):
CREATE TABLE users (
id integer NOT NULL PRIMARY KEY,
username text
);
CREATE INDEX ON users (username);
CREATE TABLE posts (
id integer NOT NULL PRIMARY KEY,
thread_id integer NOT NULL REFERENCES threads (id),
user_id integer NOT NULL REFERENCES users (id),
date timestamp without time zone NOT NULL,
content text
);
CREATE INDEX ON posts (thread_id);
CREATE INDEX ON posts (user_id);
Run Code Online (Sandbox Code Playgroud)
表中大约有 8users万个条目和 260 万个条目posts。这个通过帖子获得前 100 位用户的简单查询需要2.4 秒:
EXPLAIN ANALYZE SELECT u.id, …Run Code Online (Sandbox Code Playgroud)