12.5 创建表和发送查询

介绍了Postgres-XC以及其底层的思想之后,是时候创建我们的第一个表,看看集群将如何表现。下面的例子演示了一个简单的表。将使用id列的哈希键来分布它:

test=# CREATE TABLE t_test (id int4)

DISTRIBUTE BY HASH (id);

CREATE TABLE

test=# INSERT INTO t_test

SELECT * FROM generate_series(1, 1000);

INSERT 0 1000

一旦表被创建,我们可以给它添加数据。完成后,我们可以检查是否数据已经被正确地写入到集群中:

test=# SELECT count(*) FROM t_test;

count

-------

1000

(1 row)

不奇怪,我们在我们的表中得到了1000条数据。

这里有趣的事情是查看数据是如何被数据库引擎返回的。让我们来看看我们的查询的执行计划:

test=# explain (VERBOSE TRUE, ANALYZE TRUE,

NODES true, NUM_NODES true)

SELECT count(*) FROM t_test;

QUERY PLAN

-------------------------------------------------------

Aggregate (cost=2.50..2.51 rows=1 width=0)

(actual time=5.967..5.970 rows=1 loops=1)

Output: pg_catalog.count(*)

-> Materialize (cost=0.00..0.00 rows=0 width=0)

(actual time=5.840..5.940 rows=3 loops=1)

Output: (count(*))

->Data Node Scan (primary node count=0,

node count=3) on

"__REMOTE_GROUP_QUERY__"

(cost=0.00..0.00 rows=1000 width=0)

(actual time=5.833..5.915 rows=3 loops=1)

Output: count(*)

Node/s: node2, node3, node4

Remote query: SELECT count(*) FROM

(SELECT id FROM ONLY t_test

WHERE true) group_1

Total runtime: 6.033 ms

(9 rows)

PostgreSQL将执行一个所谓的数据节点扫描。这意味着PostgreSQL将从集群中所有相关的节点收集数据。如果您仔细观察,您可以看到,哪些查询将被推到集群内部的这些节点。重要的是,该计总数已经传送到远程节点。所有这些总数来自我们的四个将被折合成一个单一总数的节点。这种方案比简单的本地查询要复杂的多,但是,随着数据量的增长,它会是非常有益的,因为每个节点将只执行操作的一个子集。事实上,当许多东西并行执行的时候,每个节点执行操作的一个子集特别地有用。

Postgres-XC优化器可以在许多情况下把操作推到数据节点,这是很好的表现。但是,您还是应该密切关注您的执行计划,以确保您有合理的计划。

PostgreSQL Replication之第十二章 与Postgres-XC一起工作(5)的更多相关文章

  1. PostgreSQL Replication之第十二章 与Postgres-XC一起工作(7)

    12.7 处理故障转移和删除节点 在本节中,我们将看看故障切换如何处理.我们还将看看如何使用安全可靠的方法添加节点到Postgres-XC设置以及如何从Postgres-XC设置删除节点. 12.7. ...

  2. PostgreSQL Replication之第十二章 与Postgres-XC一起工作(4)

    12.4 性能优化 Postgres-XC不是一个奇特的PostgreSQL版本,而是一个真正的分布式系统.这意味这,您不能只存储数据,希望事情超出服务器之外的快速,高效.如果您想优化速度,思考数据是 ...

  3. PostgreSQL Replication之第十二章 与Postgres-XC一起工作(3)

    12.3 配置一个简单的集群 在本章中,我们要建立一个由三个数据节点组成的集群.一个协调节点,以及管理集群的全局事务管理节点.对于每个组件,我们必须创建一个目录: hs@vm:~/data$ ls - ...

  4. PostgreSQL Replication之第十二章 与Postgres-XC一起工作(1)

    在本章中,我们希望将我们的注意力集中在写可扩展,多主,同步,对称和PostgreSQL的称为Postgres-XC(PostgreSQL eXtensible Cluster)的透明复制方案.该项目的 ...

  5. PostgreSQL Replication之第十二章 与Postgres-XC一起工作(2)

    12.2安装 Postgres-XC 可以从 http://postgres-xc.sourceforge.net/下载Postgres-XC.对于本书,我们使用1.0.3版本的Postgres-XC ...

  6. PostgreSQL Replication之第十二章 与Postgres-XC一起工作(6)

    12.6 添加节点 Postgres-XC允许您在那个过程中的任何一个时间点添加新的服务器到计划中.所有您需要做的是按照我们之前演示的设置一个节点,并在 控制器上调用CREATE NODE.然后,该系 ...

  7. PostgreSQL Replication之第十四章 扩展与BDR

    在这一章中,将向您介绍一个全新的技术,成为BDR.双向复制(BDR),在PostgreSQL的世界里,它绝对是一颗冉冉升起的新星.在不久的将来,许多新的东西将会被看到,并且人们可以期待一个蓬勃发展的项 ...

  8. PostgreSQL Replication之第十五章 与Walbouncer 一起工作

    与Walbouncer 一起工作 在本书的最后一章,将引导您通向2014年发布的一个工具,称为walbouncer.本书中的大多数技巧说明了如何复制整个数据库实例,如何分片,等等.在最后一章,是关于w ...

  9. PRML读书会第十二章 Continuous Latent Variables(PCA,Principal Component Analysis,PPCA,核PCA,Autoencoder,非线性流形)

    主讲人 戴玮 (新浪微博: @戴玮_CASIA) Wilbur_中博(1954123) 20:00:49 我今天讲PRML的第十二章,连续隐变量.既然有连续隐变量,一定也有离散隐变量,那么离散隐变量是 ...

随机推荐

  1. Linux常用命令-入门

    linux 开源安全性高 linux 和 windows 1.同时登陆多用户 2.安全 3.linux没有盘符的概念 /. /        root      根目录 4.linux的文件没有扩展名 ...

  2. 【转载】Linux系统与性能监控

    原文地址:http://kerrigan.sinaapp.com/post-7.html Linux System and Performance Monitoring http://www.hous ...

  3. 灰度图像 Grayscale Binary_image

    https://en.wikipedia.org/wiki/Grayscale https://zh.wikipedia.org/wiki/灰度图像 In photography and comput ...

  4. 4Web镇之旅:开始链接

    为了将网页发布到web上,需要一个全日工作的网络服务器,最好的方法是找到一家主机代理商. 域名是用来定位网站的第一无二的名字. 网页的最顶层目录就是根目录.在Web服务器中,因为根目录中的东西有可能在 ...

  5. struct stat结构体的详解和用法

    [cpp] view plaincopy //! 需要包含de头文件 #include <sys/types.h> #include <sys/stat.h> S_ISLNK( ...

  6. Linux QtCreator设置mingw编译器生成windows程序

    Qt跨平台,那必须在Linux平台编译一个可以在windows下运行的Qt程序才行,当然还得和QtCreator环境弄在一起才行. 工作环境:Centos 7 yum install qt5-qt* ...

  7. HTML5 拖拽功能

    本地文件拖动到页面实例:(支持IE) <script> var DragFile = function (goalId) { var g = document.getElementById ...

  8. SublimeText使用技巧

    1.安装package control:ctrl+~ 2.调出命令面板:ctrl+shift+p 3.快出查找(goto Anything):ctrl+p 4.修改文件类型:ctrl+shift+p ...

  9. AC自动机算法详解

    首先简要介绍一下AC自动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一.一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章, ...

  10. 【C++】error C4146: 一元负运算符应用于无符号类型,结果仍为无符号类型

    刷leetcode 263.uglynumber时,代码如下: class Solution { public: bool isUgly(int num) { int temp = num; ) re ...