0

为了提高我的数据库的可扩展性,我希望将多个 PostgreSQL 实例分布在多台机器上。(水平分片)

在我的数据库上执行的大多数操作都是 INSERT - 也有一些偶尔的 SELECT,但主要重点仍然是 INSERT,因此数据库正在迅速增长。

例如:假设我们有 3 个名为userproduct的表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 的同样问题。)

任何帮助将不胜感激,谢谢。

4

1 回答 1

2

看看 pgpool http://www.pgpool.net/docs/latest/pgpool-en.html

特别是在并行查询。“并行查询 利用并行查询功能,可以将数据拆分到多台服务器上,这样一个查询就可以在所有服务器上同时执行,减少了整体执行时间。并行查询在搜索大规模数据时效果最佳。”

于 2013-05-28T22:09:17.313 回答