我使用Postgres 11.5。 我尝试执行以下选择。
DROP TABLE IF EXISTS test;
CREATE TABLE test (
id SERIAL PRIMARY KEY,
version VARCHAR(10) NOT NULL,
type VARCHAR(10) NOT NULL,
data JSONB NOT NULL,
publishedAt TIMESTAMP NOT NULL
);
INSERT INTO test (version, type, data, publishedAt)
SELECT '1.0.0', 'article', '{"tags":[{"slug":"complexes"}]}', '2019/11/11 11:11:11'
FROM generate_series(1, 100000);
explain analyse
SELECT id
FROM test
WHERE version = '1.0.0'
AND type = 'article'
AND data @> '{"tags":[{"slug":"complexes"}]}'
ORDER BY publishedAt
DESC LIMIT 20;
我尝试添加索引,但是选择过程至少花费了62ms。
您是否有任何想法找到一种将选择的执行时间减少到10ms以下的方法?