为了提高数据库的可伸缩性,我希望在多台机器上分布多个PostgreSQL实例。 (水平分片)
我的数据库上执行的大多数操作都是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 /代理,但这个项目仍然有效吗? (对Postgres-XC也是一样的问题。)
非常感谢任何帮助,谢谢。
答案 0 :(得分:2)
看一下pgpool http://www.pgpool.net/docs/latest/pgpool-en.html
特别是在并行查询。 “并行查询 使用并行查询功能,可以在多个服务器之间拆分数据,以便可以在所有服务器上同时执行查询,从而减少总体执行时间。在搜索大规模数据时,并行查询效果最佳。“