为了提高我的数据库的可扩展性,我希望将多个 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 的人来说,什么都不会改变,但在后台,请求会被分割成更小的“片段”并分发到集群中的所有服务器。
在网上搜索时,我遇到了 Skype 的 PL/Proxy,但这个项目仍然活跃吗?(Postgres-XC 的同样问题。)
任何帮助将不胜感激,谢谢。