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

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

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

35 ответов

34 просмотра

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта