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

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

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

35 ответов

19 просмотров

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 Автор вопроса

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

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

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
70
Здравствуйте. Задача состоит в том, чтобы сделать real-time чат в мобильном приложении. После передачи сообщения пользователем через веб-сокеты, для основного и долговременног...
🐾
5
Всем доброго дня, ребят подскажите пожалуйста, если в курсе по ассемблеру используется MASM32, могу ли я использовать FASM? В чем явная разница и будет ли у меня все работать?
Botsman
17
падает джоба хотя уже была собрана на соседнем namespace, куда капать? │ │ Copying blob sha256:2fa066caddb8f09a71082b03aa43046f79346a01d9c89e06a1f508bb1207dba5 427 │ │ Copyin...
Andrei St
2
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
25
Книга Юрова В.И пойдёт для обучения?
Botsman
24
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Люди добрые, помогите с идеями, потому что свои закончились. У клиента падает софтина в момент инициализации модуля OtlEventMonitor на RegisterWindowMessage('Gp/OtlTaskEvents/...
Михаил Усков
7
Тут просто дело в том, что я не могу сейчас дать такие подробности из за того что рассчитать это всё нереально. Этого проекта который я хочу сделать ещё даже не существует) И ...
🐾
8
> Примечательно, что новый владелец удаляет из GitHub любые жалобы, указывающие на подозрительную активность или смену владельца, и, видимо, рассчитывает на то, что пользовате...
Alex Sherbakov
2
Карта сайта