Чтобы улучшить масштабируемость моей базы данных, я хотел бы иметь несколько экземпляров PostgreSQL, распределенных на нескольких компьютерах. (Горизонтальное окошко)Распространение SQL-запросов через кластер PostgreSQL
Большинство операций, выполненных в моей базе данных, являются INSERT - есть также несколько случайных SELECT, однако основной упор все еще остается в INSERT, и поэтому база данных быстро растет.
Например: представьте, что у нас есть 3 таблицы с именем user
, product
и activity(user_id, product_id, activity(viewed, bought...), timestamp)
.
Люди, находящиеся здесь на стороне бизнеса, используют pgAdmin для запроса уникальной базы данных (на данный момент). Что было бы отличным инструментом, позволяющим распределять SQL-запросы по кластеру и возвращаться с уменьшенным набором результатов без необходимости использовать ключевое слово UNION
в наших запросах SELECT?
Например, рассмотрим следующий SQL SELECT заявление:
select u.name FROM user AS u INNER JOIN activity AS a ON u.id = a.id INNER JOIN
product AS p ON p.id = a.id WHERE product.name='blabla';
В идеале ничего не изменилось бы для людей, использующих pgAdmin, но под капотом запрос будет получить нарезанный на мелкие «куски» и распространяется на все серверов в кластере.
При поиске в Интернете я натолкнулся на PL/Proxy от Skype, но этот проект все еще активен? (Тот же вопрос для Postgres-XC.)
Любая помощь будет очень признательна, спасибо.