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

Всем привет. А есть такой тип таблицы который храниться в

оперативной памяти - пусть хоть очищается при редуте сервера?
Ну временная таблица …

35 ответов

30 просмотров

unlogged. И да, конечно, они не обязательно хранятся в оперативной памяти. В линуксе это вообще не очень просто -- и потому не очень принято. Но, в общем, поскольку они не синхронизируются на диск никогда -- то если у памяти нет более важных вещей, то они будут висеть только в памяти.

Есть два вида: temporary — временные таблицы, существующие только в рамках одного подключения и не видимые для других подключений Unlogged — полноценные таблицы, видимые всем пользователям, но не пишущие информацию об изменениях своих данных в WAL. Соответственно, после перезагрузки/краха БД данных в ней не будет, сохранится только сама структура. Полагаю, что именно такой кейс Вы и имели в виду

Ilya Anfimov
unlogged. И да, конечно, они не обязательно храня...

Разве unlogged tables тоже не пишутся на диск? Я думал, у них поведение аналогичное обычным таблицам, но они только в WAL не отражаются, а сами данные всё-таки лежат на диске

Iurii Shaporenko
Разве unlogged tables тоже не пишутся на диск? Я д...

У них есть дисковое место, которое под них выделено -- но, вообще говоря, система не обязана это делать. И можэт отложыть запись до лучшых времён.

Dmitry-Runov Автор вопроса
Iurii Shaporenko
Есть два вида: temporary — временные таблицы, суще...

А как сделать чтобы они в памяти хранились?

Dmitry Runov
А как сделать чтобы они в памяти хранились?

Постоянно "прогревать", чтобы на диск не выгружались. Впрочем, это ко всем таблицам относится.

Anton Grishin
а как же checkpoint?

Так он WAL записывает в таблицы, а если таблицы нет в WAL...

Anton Grishin
а как же checkpoint?

Впрочем, он не обязательно выгружает страницы из памяти (какой бы то ни было).

Ilya Anfimov
Впрочем, он не обязательно выгружает страницы из п...

а как грязные блоки попадают в таблицу на диске? Или не попадают?)

Anton Grishin
а как грязные блоки попадают в таблицу на диске? И...

Отправляются сразу в файл при необходимости освободить shared_buffers, насколько я помню.

Ilya Anfimov
Отправляются сразу в файл при необходимости освобо...

ну и как это коррелирует с "Постоянно "прогревать", чтобы на диск не выгружались."?

Anton Grishin
ну и как это коррелирует с "Постоянно "прогревать"...

Если постоянно прогревать -- то необходимости освободить shared_buffers не возникнет.

Dmitry-Runov Автор вопроса
Ilya Anfimov
Постоянно "прогревать", чтобы на диск не выгружали...

Там будет 10-15 строк, может чуть больше. Я буду у них менять статусы enum. И это будет очень быстро. Т.е. в секунду 3 раза должен сменить у одной строки. Поэтому я подумал о памяти. У меня postgresql память почему-то не кушает. 8 гигов на VDS, 1,5% занято. Может буферный кэш проставить побольше, я так понимаю это параметр shared_buffers = 2GB

Dmitry-Runov Автор вопроса
Dmitry Runov
Нет. 10-15 строк, 5-10 столбцов

А данных, данных-то в столбцах сколько будет? В байтах?

Dmitry-Runov Автор вопроса
Dmitry Runov
1170 байт сейчас всего в таблице

ОК. И как тогда вы планируете чтобы у вас вашы гигабайты использовались?

Dmitry-Runov Автор вопроса
Ilya Anfimov
ОК. И как тогда вы планируете чтобы у вас вашы гиг...

Я вам посчитал пример одной таблицы. Временной.

Dmitry-Runov Автор вопроса
Ilya Anfimov
ОК. И как тогда вы планируете чтобы у вас вашы гиг...

Короче я перегрузил где-то 1/90 в постгресс от БД на MySql. Mysql занимал вместе с индексами 160 Гигов. А 1/90 от объекма занимает 254 мб. Любопытно. Постгресс экономнее походу.

Dmitry Runov
Короче я перегрузил где-то 1/90 в постгресс от БД ...

В цэлом -- нет, все накладные расходы в нормальных ситуацыях плюс-минус похожы. На порядок отличаться не будут. Собственно, накладные на тапл -- дажэ поменьшэ в mysql (нет xid, нет отдельного primary key). Возможно, там в mysql был index bloat высочайшый.

Dmitry-Runov Автор вопроса
Ilya Anfimov
Или вы индэксы забыли какие-то.

Ну парочку индексов, я делал. Но любопытно все равно. Еще я перед началом переезда я читал, что автовакуум работает по умолчанию и если не надо ни чего агресивно чистить, то и менять ни чего не надо. Сейчас захожу в конфиг. Автовакуум закоментирован :) .

Dmitry Runov
Я вам посчитал пример одной таблицы. Временной.

Ну, тогда я просто не вижу -- чего вы хотите. И зачем считаете одну временную таблицу небольшого размера.

Dmitry Runov
Ну парочку индексов, я делал. Но любопытно все рав...

Закомментированы обычно дефолтные значения.

Dmitry-Runov Автор вопроса
Ilya Anfimov
Ну, тогда я просто не вижу -- чего вы хотите. И за...

Я изначально спрашивал про временные таблицы в памяти. Потому что если я начинаю перебирать у меня скрипт эксепшион выкидывает, "не могу получить строку". Ну и в голове возникло 2 варианта: 1. Не смог создать подключение (сейчас я отработаю этот вариант) - много подключений, пуллер на своей стороне организую. 2. не успевает обработать данные. У меня еще на таблице стоит триггер который обрабатывает дату. Возможно еще дело в нем. В MySql я так же делал с такой же таблицей временной. Все работало. --- Триггер обновления даты и функция ее дергающая BEGIN; CREATE OR REPLACE FUNCTION update_last_work() RETURNS TRIGGER AS $$ BEGIN NEW.last_work = now(); RETURN NEW; END; $$ language 'plpgsql'; COMMIT; -- фукнция которая дергает триггер CREATE TRIGGER update_timestamp_last_work BEFORE INSERT OR UPDATE ON tableTmp FOR EACH ROW EXECUTE PROCEDURE update_last_work();

Dmitry-Runov Автор вопроса
Ilya Anfimov
Закомментированы обычно дефолтные значения.

Я думаю у меня автовакуум не включен.

Dmitry Runov
screenshot Я думаю у меня автовакуум не включен.

Можно просто посмотреть show all; Чем думать лишний раз.

Dmitry-Runov Автор вопроса
Ilya Anfimov
Можно просто посмотреть show all; Чем думать лишни...

Прикольно пишет что включен :) и track_counts тоже включен ...

Dmitry-Runov Автор вопроса

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

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

У меня это всегда вопрос вызывало.. Нафига писать код так, чтобы потом ошибки вылавливать?
Nik
44
Всем привет. Сейчас я изучаю erlang по книге Erlang and OTP in action. Дошел до главы где реализуется первый gen server на примере tcp rpc сервера. Меня очень сильно смутил ко...
Freezing Death
10
что за асемблер кста?
Shvabrikk Nya
19
Добрый день! Пробую отловить исключение EConvertError: function _TryTextToDouble(var DoubleVar: Extended; Text: String): Boolean; begin try DoubleVar := StrToFloat...
Kirill Filippenok
19
всем привет. реально ли понять чем в процессе занята память? delphi/linux, процесс свой
Handatros
12
Подскажите... Есть ли название у способа разработки кода, в котором: сперва пишут минимальную рабочую структуру: Напр. ввод, обработка, вывод, контроль. Потом эту структуру д...
Budemposmotret
6
В дизассемблере вижу, что строки пихают в регистры через lea, почему так, а не через mov?
Oleg
8
А где @Grinyaha уважаемый пропал?
Am Ambrion
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Сделал краткий обзор магазина из статьи и заодно там же записал инструкцию по развёртыванию. https://www.youtube.com/watch?v=8-sE1vNk95Q (чё думаете по звуку? кое-что поменял...
Andrey K
17
Карта сайта