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

У меня есть таблица пользователей и подписчиков PostgreSQL с именами отношений размером 200 миллионов строк, и она растет со скоростью 10 миллионов новых пользователей и новых отношений между ними в неделю. Я установил индекс для столбцов, и мне нужно, чтобы каждая пара пользователя и подписчика была уникальной. Максимальное количество подписчиков для пользователя - 5000, и пользовательские запросы относятся к обоим направлениям, например: по пользователям.
SELECT users, followers FROM relations WHERE users NOT IN (1,2,3);
на подписчиках SELECT users, followers FROM relations WHERE followers NOT IN (1,2,3);
время: простой запрос вроде SELECT COUNT(*) FROM relations; в моей системе займет 10 секунд, и мне нужно подождать полчаса, чтобы выполнить ранее упомянутые запросы.

Какая база данных лучше всего для хранения этого графика (высокая скорость записи и высокая скорость чтения)

1 ответ

InfiniteGraph, безусловно, справится с объемом данных и скоростью роста, и есть бесплатная версия для баз данных размером менее 50 гигабайт. Мы регулярно проверяем его способность принимать миллиарды узлов и ребер в час. Этот тест выполняется в многоузловой облачной архитектуре, поэтому производительность вашего оборудования может отличаться.

InfiniteGraph поддерживает индексы.

Язык запросов InfiniteGraph - «DO», и ваши запросы будут выглядеть примерно так:

      MATCH path = (u:User)-[:Relation]->(f:Follower) RETURN u, f;

а также

      FROM Relation return COUNT(*);

Заявление об ограничении ответственности: я директор полевых операций по объективности, создатель InfiniteGraph.

Другие вопросы по тегам