172 похожих чатов

В чем sex идеи? Сжимать на диске место, занятое файлом

данных?

13 ответов

32 просмотра

Удалять что то это очень больно и очень медленно поэтому пг не удаляет а оставляет как есть, когда дисковое место кончилось приходит админ и запускает vacuum, не так?

central hardware
Удалять что то это очень больно и очень медленно п...

ага в 3 часа ночи. бд встает раком и будится админ почистить место

central hardware
Удалять что то это очень больно и очень медленно п...

Не вакуум, а вакуум фулл. Который не запускается, потому что нет места на диске.

central hardware
Мониторинг наше все

мониторинг сработал пораньше в 2 часа ночи, БД не упала, все равно херня какая-то :)

Читайте документацию и курсы АБД от ПостгресПро. Там всё есть в удобоваримом и понятном виде.

central hardware
Удалять что то это очень больно и очень медленно п...

Вообще не так. Вакуум чистит версии данных которые никакая транзакция уже не увидит. Освободившееся место переиспользуется

Igor-IT Автор вопроса
Михаил Шурутов
Читайте документацию и курсы АБД от ПостгресПро. Т...

Я посмотрел все три DBA. Знаю что есть. Не знаю, кто и зачем придумал.

Igor IT
Я посмотрел все три DBA. Знаю что есть. Не знаю, к...

Я вот не знаю, что непонятно в этих двух абзацах из документации (https://postgrespro.ru/docs/postgresql/14/routine-vacuuming) , для понять, ЗАЧЕМ: В PostgreSQL команды UPDATE или DELETE не вызывают немедленного удаления старой версии изменяемых строк. Этот подход необходим для реализации эффективного многоверсионного управления конкурентным доступом (MVCC, см. Главу 13): версия строки не должна удаляться до тех пор, пока она остаётся потенциально видимой для других транзакций. Однако в конце концов устаревшая или удалённая версия строки оказывается не нужна ни одной из транзакций. После этого занимаемое ей место должно быть освобождено и может быть отдано новым строкам, во избежание неограниченного роста потребности в дисковом пространстве. Это происходит при выполнении команды VACUUM. Обычная форма VACUUM удаляет неиспользуемые версии строк в таблицах и индексах и помечает пространство свободным для дальнейшего использования. Однако это дисковое пространство не возвращается операционной системе, кроме особого случая, когда полностью освобождаются одна или несколько страниц в конце таблицы и можно легко получить исключительную блокировку таблицы. Команда VACUUM FULL, напротив, кардинально сжимает таблицы, записывая абсолютно новую версию файла таблицы без неиспользуемого пространства. Это минимизирует размер таблицы, однако может занять много времени. Кроме того, для этого требуется больше места на диске для записи новой копии таблицы до завершения операции. Написано по-русски. Понятно.

Igor-IT Автор вопроса
Михаил Шурутов
Я вот не знаю, что непонятно в этих двух абзацах и...

Странно, почему в Oracle Database американцы это не сделали?

Igor IT
Странно, почему в Oracle Database американцы это н...

Потому что oracle - это oracle, а постгрес, это постгрес. ВНЕЗАПНО!

Igor IT
Странно, почему в Oracle Database американцы это н...

Я когда-то разбирал отличия: https://postgrespro.ru/blog/pgsql/17758

Igor IT
Я посмотрел все три DBA. Знаю что есть. Не знаю, к...

MVCC придумал наш бывший соотечественник Вадим Михеев из Красноярска, он был одним из первых core-разработчиков http://www.sai.msu.su/~megera/postgres/mvcc.html

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта