GreenPlum小知识

1、GreenPlum各个segment中表数据的分布情况

SELECT gp_segment_id, count(*)

FROM  table_name

GROUP BY gp_segment_id;



2、segment主机IP变化之后master的启动

1)修改segment主机的 /etc/hosts
2)修改master主机的  /etc/hosts

3)重新生成keys文件

# gpssh-exkeys  -f  all_host_file

4)修改 $MASTER_DATA_DIRECTORY/global 下包含旧 IP  的文件

# sed ‘s/old_ip/new_ip/g’ filename > filename


3、Greenplum 数据与索引

1)查看某个数据库占用空间大小

# gpsizecalc  -x  database -s m    --整体情况

# gpsizecalc  -x  database -s m  -f    -- 各个segment的数据分布情况


2)查看某个数据表占用空间大小

#  gpsizecalc  -t  schema.table  -s  m  -a  database    --整体情况

#  gpsizecalc  -t  schema.table  -s  m  -f  -a  database    --各个segment的数据分布情况


3)查看某个数据表的索引占用空间大小

#  gpsizecalc  -t  schema.table  -s m  -i  -f  -a  database    --各个segment的索引大小


4)索引实例

数据库:hust

模式  :hust

数据表:charge(id, phonenum, createtime)      -- 100w 数据行

步骤一

# gpsizecalc  -t hust.charge -s m  -a hust        --查看表数据的大小

显示数据结果:150.27MB

# gpsizecalc  -t  hust.charge -s m -i  -a hust      --查看表索引的大小

显示数据结果: 0MB


步骤二

SQL>  SELECT  *  FROM  hust.charge  WHERE phonenum='value' ;

得到6组数据结果:

    1            2              3          4              5                6

357ms      595ms      635ms    664ms        583ms          632ms


步骤三

SQL>CREATE  INDEX  ind_ph  ON  hust.charge(phonenum);


步骤四

# gpsizecalc  -t  hust.charge -s m  -a hust        --查看表数据的大小

显示数据结果:176.02MB

# gpsizecalc  -t  hust.charge -s m -i  -a hust      --查看表索引的大小

显示数据结果: 25.75MB


步骤五

SQL>  SELECT  *  FROM  hust.charge  WHERE phonenum='value' ;

得到6组数据结果:

    1            2              3          4              5                6

229ms    230ms    204ms    245ms      241ms        225ms


实例对比结果:

a、单列索引占用整体数据的比例:18.8%

b、单列索引查询平均效率比:1:2.5