geebv
@geebv

Какие настройки базы данных настроить для следующего характера запросов?

Даны таблицы counters1, counters2 и datas. Таблицы countersN различные счетчики. В datas данные (бинарник не более 2кб, в среднем 100-200 байт).
Описание таблиц абстрактное но она в целом отражает суть - данные записываются, по мере записи обновляются счетчики.

По логике1 каждая операция сопровождается вставкой в таблицу datas и обновлением счетчиков в таблицах counters1, counters2. Итого один INSERT, два UPDATE в одной транзакции. В таблицах countersN в основном обновляется одна и та же строка) - то есть для 1000 вставленных данных 1000 раз обновится одна и та же строка.

По логике2 выборка из таблицы datas по индексу (пагинация) и обновление countersN. То есть на выборку 100 данных обновится 1 раз строка countersN.
-- индекс
CREATE INDEX indx ON datas(client_id asc, created_at DESC, data_id ASC);

-- первые 100 строк
WHERE client_id = 'uuid' ORDER BY created_at DESC, data_id ASC LIMIT 100;
-- вторая страница итп
WHERE client_id = 'uuid' AND (t.created_at, t.data_id) < ('2011-02-10 13:20:20.985597+06', 'uuid') ORDER BY created_at DESC, data_id ASC LIMIT 100;


Планируется это все крутиться на машине с 8 ядрами и 16 гигами ОЗУ SAS.
Порядок операций по логике1 250 в секунду. Порядок запросов по логике2 порядка 1000 в секунду.

Вопрос заключается в том какие настройки базы данных подкрутить что бы можно было жить с озвученными цифрами выше? Цифры это предполагаемый максимум на ближайшие 3 месяца. Далее все пропорционально будет расти.

Пока не большие нагрузки (и изучаем cassandra, еще варианты?) планируется хранилище postgres.
Далее по мере роста - cassandra. Таблица с данными будет иметь сортировку
WITH CLUSTERING ORDER BY (created_at DESC, data_id ASC);


Любые ваши мысли. Спасибо
  • Вопрос задан
  • 165 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы