Мне нравится, что PostgreSQL устойчив к сбоям, так как я не хочу тратить время на исправление базы данных .Однако я уверен, что должны быть некоторые вещи, которые я могу отключить / изменить, чтобы вставки / обновления работали быстрее, даже если я потеряю пару записей до отключения / сбоя питания.Меня не беспокоит пара записей - только база данных в целом.
Я пытаюсь оптимизировать PostgreSQL для большого количества записей.В настоящее время вставка 1 миллиона строк занимает 22 минуты, что кажется немного медленным.
Как я могу ускорить запись в PostgreSQL?
Некоторые из опций, которые я рассмотрел (например, full_page_writes), также, похоже, рискуют повредить данные, которые нене то, что я хочу.Я не возражаю против потерянных данных - я просто не хочу порчи.
Обновление 1
Вот таблица, которую я использую - так как большинство таблиц будет содержать целые и маленькие строкиэта «примерная» таблица, кажется, лучший пример того, что я должен ожидать.
CREATE TABLE "user"
(
id serial NOT NULL,
username character varying(40),
email character varying(70),
website character varying(100),
created integer,
CONSTRAINT user_pkey PRIMARY KEY (id)
)
WITH ( OIDS=FALSE );
CREATE INDEX id ON "user" USING btree (id);
У меня есть около 10 сценариев, каждый из которых выдает 100 000 запросов одновременно, используя подготовленные операторы.Это для имитации реальной нагрузки, которую мое приложение будет отдавать базе данных.В моем приложении каждая страница имеет 1+ вставок.
Обновление 2
Я уже использую асинхронные коммиты, потому что у меня
synchronous_commit = off
в основном файле конфигурации.