【发布时间】:2010-06-07 21:24:28
【问题描述】:
只是想知道是否可以在 postgres 中设置默认表空间来保留索引。希望数据库位于 postgres 的默认表空间上,但是,希望在不同的磁盘集上获取索引,以保持 i/o 流量分离。
在我看来,它可以在不进入并执行 ALTER index TABLESPACE 命令的情况下完成,然后索引被移动并将保留在那里,但数据库和索引是 django 应用程序的一部分,所以非-django 干预可能会导致一些问题。
【问题讨论】:
只是想知道是否可以在 postgres 中设置默认表空间来保留索引。希望数据库位于 postgres 的默认表空间上,但是,希望在不同的磁盘集上获取索引,以保持 i/o 流量分离。
在我看来,它可以在不进入并执行 ALTER index TABLESPACE 命令的情况下完成,然后索引被移动并将保留在那里,但数据库和索引是 django 应用程序的一部分,所以非-django 干预可能会导致一些问题。
【问题讨论】:
似乎没有办法指定默认索引表空间(即除了数据库自己的默认表空间)。我总是手动指定它们。编写查询来检查是否存在错误表空间中的索引相当容易,因此您至少可以将其安装为数据库监控的一部分。
恕我直言,您不必担心对应用程序外部的数据库进行此类更改,因为这是应用程序无法理解的数据库实现细节。如果应用程序出现问题,则应用程序已损坏。
【讨论】:
目前 django 支持数据库和 indexes 的默认表空间:
DEFAULT_INDEX_TABLESPACE 默认值:''(空字符串)
如果后端支持,默认表空间用于未指定字段的索引。
DEFAULT_TABLESPACE 默认值:''(空字符串)
如果后端支持,则用于未指定模型的默认表空间。
【讨论】: