Производительность SELECT / INSERT в больших таблицах PostgreSQL? - PullRequest
1 голос
/ 17 января 2012

Я нахожусь в процессе разработки макета базы данных для работы на PostgreSQL. В этой базе данных мне нужно обрабатывать много адресов, поэтому я, естественно, хочу использовать таблицу адресов, а затем мои другие данные просто указывают на первичный ключ.

Я хочу, чтобы адреса были уникальными, поэтому я планирую использовать простой первичный ключ, а затем уникальный индекс для всех столбцов данных.

Что-то вроде этого:

CREATE TABLE address(id serial NOT NULL, name VARCHAR(32), address1 VARCHAR(32), address2 VARCHAR(32), postal VARCHAR(12), city VARCHAR(64), CONSTRAINT pkey PRIMARY KEY (id), CONSTRAINT unq UNIQUE (name,address1,address2,postal,city));

Я ожидаю, что с первого дня в этой таблице будет более 2 миллионов записей.

Таблица будет поражена множеством одновременных ВЫБОРОВ, а также несколькими ВСТАВКАМИ. Но в целях обеспечения целостности данных таблица никогда не увидит ОБНОВЛЕНИЯ или УДАЛЕНИЯ.

Какую производительность я могу ожидать от такого рода таблицы? Есть ли какое-то снижение производительности при использовании больших таблиц вместо копирования данных туда, где это необходимо?

1 Ответ

1 голос
/ 18 января 2012

Это зависит от того, сколько будет этих запросов, насколько сильна ваша машина, есть ли хороший индекс, который можно использовать для каждого запроса ... Обычно для PostgreSQL 2 миллиона строк, это не большое число, когда запрос результаты хорошо ограничены индексами, особенно эффективен поиск по первичному ключу.

Но, однако, поиск по LIKE с подстановочным знаком в начале был бы проблемой производительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...