У меня есть очень ориентированное на запись приложение, которое использует postgres hstore. мой типичный рабочий процесс - это SELECT
, за которым следует несколько UPDATE
или INSERT
(в основном первые). Обычно это происходит при выполнении около 500 «задач» в секунду.
поэтому мой единственный экземпляр postgres просто не справляется. я вижу, что сервер postgres привязан к процессору, а процессы postgres все время UPDATE
ing. Дисковый ввод-вывод выглядит нормально, и у меня много свободной памяти (44 ГБ из 48). я пытался настроить в соответствии с вики-страницей postgres и pg_tune, но мне просто нужно немного больше производительности .
мои таблицы следуют следующему дизайну:
Column | Type | Modifiers | Storage | Stats target | Description
------------+--------------------------+---------------------------------------------------------------------+----------+--------------+-------------
id | integer | not null default nextval('table_id_seq'::regclass) | plain | |
created_at | timestamp with time zone | not null | plain | |
updated_at | timestamp with time zone | not null | plain | |
context | hstore | default hstore((ARRAY[]::character varying[])::text[]) | extended | |
data | hstore | default hstore((ARRAY[]::character varying[])::text[]) | extended | |
и почти все мои UPDATE
относятся к типу:
UPDATE <table> updated_at=<date> WHERE id=<id>
копаясь, я нашел два проекта, которые утверждают, что помогают с производительностью записи:
что бы вы порекомендовали для моего (довольно упрощенного) рабочего процесса?
(и да, я пробовал монго, однако я скучаю по схемам запросов SQL)