Таблично пространство по подразбиране за индекси в postgres

Просто се чудя дали е възможно да задам таблично пространство по подразбиране в postgres, за да поддържам индекси. Бихте искали базите данни да живеят в табличното пространство по подразбиране за postgres, но бих искали да получите индексите на различен набор от дискове, само за да запазите i/o трафика отделен.

Не ми изглежда, че може да се направи, без да влезете и да направите команда ALTER index TABLESPACE, след което индексът се премества и ще остане там, но базите данни и индексите са част от django приложение, така че намесата не е django може да причини някои проблеми.


person tom    schedule 07.06.2010    source източник


Отговори (2)


Не изглежда, че има начин да се посочи пространство за таблици на индекс по подразбиране (това е различно от собственото пространство за таблици по подразбиране на базата данни). Винаги съм ги определял ръчно. Доста лесно е да напишете заявка, за да проверите за индекси, които са в грешното таблично пространство, така че можете поне да инсталирате това като част от наблюдението на вашата база данни.

IMHO, че не трябва да се притеснявате за извършване на подобни промени в базата данни извън приложението, тъй като това е детайл за внедряване на база данни, който приложението не пречи. Ако приложението има проблем с него, приложението е повредено.

person araqnid    schedule 08.06.2010
comment
Доколкото мога да кажа, Django дори не използва правилно настройката за табличното пространство за модел или настройката DEFAULT_TABLESPACE на postgresql. Само бекендът на Oracle изглежда генерира нещо чрез tablespace_sql. - person slacy; 25.10.2011

В момента django поддържа таблично пространство по подразбиране за база данни и за индекси :

DEFAULT_INDEX_TABLESPACE По подразбиране: '' (Празен низ)

Пространство за таблици по подразбиране, което да се използва за индекси на полета, които не посочват такова, ако бекендът го поддържа.

DEFAULT_TABLESPACE По подразбиране: '' (Празен низ)

Пространство за таблици по подразбиране, което да се използва за модели, които не посочват такъв, ако бекендът го поддържа.

person ashwoods    schedule 07.07.2011
comment
Ако прочетете кода, не изглежда, че задните части на postgresql и postgresql_psycopg2 всъщност генерират правилния SQL за добавяне на табличното пространство. Например, няма дефиниция на tablespace_sql в нито един от тези бекендове, така че използва този по подразбиране, който генерира само ''. - person slacy; 25.10.2011
comment
работи за мен. Трябваше да закърпя моето django 1.2, за да работи. code.djangoproject.com/ticket/12308 - person ashwoods; 26.10.2011
comment
работи за мен и трябваше да кръпка django са две напълно различни неща. - person slacy; 27.10.2011