PostgreSQL одна таблица на 10М строк
От: Jericho113 Украина  
Дата: 14.04.20 10:37
Оценка:
Всем привет,
Подскажите плз по PostgreSQL и производительности вычитки вставки записей в одну таблицу такой структуры
До этого работал только с MSSQL и там бы у меня такого вопрос не возникло но вот никогда не имел опыта с PostgreSQL поэтому и спрашиваю

Таблица представляет собой хранилище определенных действий выполненых юзером тенанта т.е. изменение значимого поля которое нужно логировать или же иных операций
подразумевающих логирование
Table UserActivitities
(
 Id int not null serial,
 TID int not null // tenant identifier
 UserId int nit null // tenant's user id 
 Created datetime,
 Activity varchar(4000), // any activity data serialized 
 
)

В системе около 500 тенантов и у каждого по 200-300 юзеров
Нагрузка:
В таблицу выше будут активные вставки но НЕ изменения уже существующих записей
Выборка обычно будет по TID UserID с пейжингом отсортированная по ID но выборка не частая и не автоматическая — т.е.
юзер должен сам инициировать просмотр зайдя на определенную страницу на сайте
Сейчас все хранится в Azure Table Storage (там полуструктурированные данные). Общее к-во строк около 10М но удалять ничего нельзя — только добавлять новые записи

Вопросы:
1) Позволяет ли структура таблицы поддерживать большое число вставок не замедляя чтение?
2) Позволяет ли структура таблицы поддерживать чтение не блокируя вставки?
3) Есть ли какие то грабли в структуре таблицы которые вместе с какой-либо особенностью PostgreSQL могут привести к замедлению вставок/вычитки вместе с ростом к-ва записей в таблице?
Что-либо еще на что следует обратить внимание?
Есть ли общие подходы в PostgreSQL для реализации такой функциональности?

PS:В MSSQL я бы сделал партиционирование по TID (tenantID) что повысило бы скорость чтения и разнес партиции по файлам но вот как с этим в PostgreSQL и сработает ли это там?
NetDigitally yours ....
postgresql bigtable
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.