PostgreSQL允许创建"部分索引",它基本上是带条件谓词的索引.http://www.postgresql.org/docs/8.2/static/indexes-partial.html
在测试时,我发现它们在查询仅访问具有120k行的表中的特定12行的情况下表现非常好.
但在我们部署之前,我们应该注意哪些缺点或警告?
主要的警告是不要不恰当地使用它们.它们适用于标识符合一组条件的行,其中这些行在大型表中是少数.
以表Orders
为例,order_status
以列为单位,并在订单状态中分发您的数据,如下所示:
新5%
缺货2%
在过境5%
完成85%
退回3%
如果您经常查询where order_status = 'New'
以获取新订单列表,那么剩下的大部分时间只是通过ID直接引用订单,那么部分索引将是有益的.在你的120k中的12行的例子中,这更是如此.