问题:使用STI的时候索引去哪了?

我正在使用 Rails 和 postgres。

我有几个使用 STI 的模型,我想知道应该在表的什么位置放置索引,为什么?

例如,假设我有以下设置:

class Comment < AR; end
class MovieComment < Comment; end
class MagazineComment < Comment; end


# Fake Comment Table
id:integer
title:string
body:text
type:string

谢谢!

解答

type字段上,如果您只想要MovieCommentMagazineComment之一。如果你不这样做,你就不需要这里的索引。我不确定AR是否每次都使用type,但只是为了确保。

因为id字段是主键,所以索引应该已经存在。

如果你想同时查询typeid确保你有一个组合索引。

在其他字段上:取决于您查询的内容,但我想您只想检索这些。

Logo

PostgreSQL社区为您提供最前沿的新闻资讯和知识内容

更多推荐