为了提高我的数据库的可伸缩性,我希望将PostgreSQL的多个实例分布在多台机器上。 (水平分片)通过PostgreSQL集群分发SQL查询
在我的数据库上执行的大多数操作都是INSERT - 也有一些偶然的SELECT,但是主要重点仍然放在INSERT上,因此数据库正在迅速增长。
例如:假设我们有3个表,分别命名为user
,product
和activity(user_id, product_id, activity(viewed, bought...), timestamp)
。
这里的业务方的人使用pgAdmin来查询(现在)唯一的数据库。什么是一个很好的工具,可以让SQL语句分布在集群中,并返回一组减少的结果,而不必在我们的SELECT查询中使用UNION
关键字?
例如,请考虑下面的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的乡亲,但引擎盖下的要求会得到切碎成更小的“碎片”,并分发给所有的集群中的服务器。
在搜索网页时,我遇到了Skype的PL/Proxy,但是这个项目仍然活跃? (同样的问题Postgres-XC。)
任何帮助将不胜感激,谢谢。