postgre

postgre

PostgreSQL: Как узнать сколько «ест» ваша база

Если что-то большое не работает — значит нужно найти это большое и почистить. Даже большие сервера не бесконечны. Обращаю Ваше внимание — тут могут быть внешние ключи (и хахаха! они могут быть сравнимы с таблицей по размеру), индексы и тд. Скорость или диск, диск или скорость?

По личному опыту, триггеры и внешние ключи на реально нагруженных проектах делать не нужно, и об этом говорят даже разработчики постгре. Только тсссс)

  SELECT nspname || '.' || relname AS "relation",
    pg_size_pretty(pg_relation_size(C.oid)) AS "size"
  FROM pg_class C
  LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
  WHERE nspname NOT IN ('pg_catalog', 'information_schema')
  ORDER BY pg_relation_size(C.oid) DESC
  LIMIT 20;


postgre

Postgre: Как сдампить базу и запихнуть в контроль версий

Настал тот день, когда Вам приходится писать много, действительно много функций в базе данных, а не в php. И в принципе наверное можно так и писать, потихоньку сохраняя куда-то у себя в схемах, но дублировать код — грустно, нудно и бессмысленно. Не сохранять — а просто ваять базу через консольку sql запросов — как делает большая часть команд разработчиков, не наделенных отдельным архитектором БД, и уж тем более каждый честный одинокий пыхпыхер… — это рискованное земледелие. Мягко выражаясь) Поэтому, для себя я делаю такой вот минимегаскриптик на php (не считая регулярного pg_dumpall -U -f). Потому что мне удобнее видеть в дереве проекта читабельную схему, а в контроле версий — реальные изменения каждого отдельного файла. Схему, сейчас завязанную на экспорте таблиц и функций из Postgre через sql запросы, можно развить и разнообразить под личные вкусы (например, добавить представления — они практически рядом), но ведь забавно что вытянуть в конце концов можно все.

ПС Я знаю про автоматические рисовалки БД вроде DBDesigner, но лично меня удивляют результатами (я люблю больше и все по-другому))))

Продолжить чтение…