postgresql 在SQL中使用带索引的WHERE和AND子句

nhhxz33t  于 2023-05-28  发布在  PostgreSQL
关注(0)|答案(1)|浏览(165)

我有两张table

CREATE TABLE profile (
    id BIGSERIAL PRIMARY KEY,
    nickname VARCHAR,
    registered_at TIMESTAMP
);
CREATE TABLE post (
    id BIGSERIAL PRIMARY KEY,
    owner_id BIGINT REFERENCES profile(id),
    body TEXT,
    inserted_at TIMESTAMP,
    likes_count INT
);

索引

CREATE INDEX ON post (owner_id);

和查询

SELECT * FROM post WHERE likes_count = ? AND owner_id = ?

索引是否将在查询中使用?

yzuktlbb

yzuktlbb1#

假设这是MSSQL(看起来像),那么是的。
一般来说,大多数数据库引擎应该利用owner_id上的索引来限制在扫描likes_count标准之前为select返回的行,但这并不能保证,因为它高度依赖于RDS实现。
话虽如此,对于这些问题,最好的办法是在您正在使用的任何RDS平台上查看执行计划--这将直接回答您的问题,并且专门针对您正在使用的平台。

相关问题