Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Хранение БД в памяти
|
|||
|---|---|---|---|
|
#18+
Добрый день! Требуется ускорить работу с одной таблицей БД (небольшой по объему, около 100-150 MB). По ней идет проход с помощью нескольких курсоров. Подскажите, как можно дать указание Postgres, что эту таблицу надо хранить целиком в оперативной памяти (ОП). Хотелось бы, чтобы при начале работы с этой таблицей, она целиком переписывалась в ОП и хранилась бы там до конца работы. Это, по идее, должно сильно ускорить процесс. Все это в предположении, что памяти всегда хватает. Заранее благодарен. Дмитрий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2005, 11:47 |
|
||
|
Хранение БД в памяти
|
|||
|---|---|---|---|
|
#18+
не имеет смысла говорить ей это т.к. посгря так вобщем и делает поумалчанию (+ это частично делает OS), повозможносит максимально используя шареную память и храня в ней пайджи таблиц к которым запросы идут... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2005, 13:53 |
|
||
|
Хранение БД в памяти
|
|||
|---|---|---|---|
|
#18+
Еще как имеет. незнаю как насчет курсоров но вакумы реиндексы и все что зависит от дисковой подсистемы.. Использовать надо tablespace Указываешь таблице где ей лежать и радуешся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2005, 15:16 |
|
||
|
Хранение БД в памяти
|
|||
|---|---|---|---|
|
#18+
Вопрос о том - как закэшировать таблицу, а не куда ее физически положить. Таблица обновляемая или статическая? Если статическая - сделать скажем так: tablespace разместить в /proc и перегружать туда таблицу перед работой. Или к примеру так: select count(*) from table - Тогда она поднимется в кэш, делать это переодически, чтобы БД не выкидывала таблицу назад. Опять же это все зависит от интенсивности работы с БД. Но это все так - ИМХО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2005, 15:37 |
|
||
|
Хранение БД в памяти
|
|||
|---|---|---|---|
|
#18+
Работа с таблицей проходит пошагово. На текущем шаге таблица является статической и из нее считываются данные с помощью курсоров. Получается, что надо в начале каждого шага делать этот tablespace, затем считывать данные из нее. На следующем шаге действия повторяются. Вообще подскажите, что конкретно делает этот tablespace, и как им пользоваться (поконкретнее). Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2005, 16:30 |
|
||
|
Хранение БД в памяти
|
|||
|---|---|---|---|
|
#18+
landyВопрос о том - как закэшировать таблицу, а не куда ее физически положить. Таблица обновляемая или статическая? Если статическая - сделать скажем так: tablespace разместить в /proc и перегружать туда таблицу перед работой. Или к примеру так: select count(*) from table - Тогда она поднимется в кэш, делать это переодически, чтобы БД не выкидывала таблицу назад. Опять же это все зависит от интенсивности работы с БД. Но это все так - ИМХО Примерно это я и имел в виду.. Подробнее Делается диск в оперативной памяти Затем на нем размещается tablespace подправляется скрипт запуска сервера БД перед запуском из бекапа копировать таблицу на диск в памяти, после остановки сервера копировать все с диска в памяти в бекап. В результате избавляемся от тормозов дисковой подсистемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2005, 16:41 |
|
||
|
Хранение БД в памяти
|
|||
|---|---|---|---|
|
#18+
Насколько я понял ид дискуссии, таким образом (в /proc) следует размещать только статические таблицы. Возникает вопрос - а почему нельзя размещать и те, которые меняются. Ведь созданный диск (как устройство) на ОП ничем не отличается от других. Или я не прав? Просто существует опасность пропажи данных, а так все то же самое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2005, 17:13 |
|
||
|
Хранение БД в памяти
|
|||
|---|---|---|---|
|
#18+
В случае с диском в ОП можно размеать там любые таблицы, хоть всю базу, главное чтобы места хватило. про /proc не знаю что за фича говорить не буду. про tablespace http://www.postgresql.org/docs/8.1/interactive/sql-createtablespace.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2005, 17:17 |
|
||
|
Хранение БД в памяти
|
|||
|---|---|---|---|
|
#18+
А про пропажу данных. Делать чаще pg_dump Если есть smartups то привязать pg_dump на события приходящие с ups ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2005, 17:20 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=33419011&tid=2006814]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
132ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 465ms |

| 0 / 0 |
