Greenplum中管理数据

1.管理数据

1.1.关于GP的并发控制

1) GP使用多版本控制模型(Mutltiversion Concurrency Control/MVCC)保持数据一致性;
可将MVCC看成行级别锁的一种妥协,它在许多情况下避免了使用锁,同时可以提供更小的开销。根据实现的不同,它可以允许非阻塞式读,在写操作进行时只锁定必要的记录。MVCC会保存某个时间点上的数据快照。这意味着事务可以看到一个一致的数据视图,不管他们需要跑多久。这同时也意味着不同的事务在同一个时间点看到的同一个表的数据可能是不同的。如果你从来没有过种体验的话,可能理解起来比较抽象,但是随着慢慢地熟悉这种理解将会很容易。
2) MVCC以避免给数据库事务显式锁定的方式,最大化减少锁争用以确保多用户环境下的性能;
3) GP提供了各种锁机制来控制对表数据的并发访问;
4) GP为每个事务提供事务隔离;

1.2.插入新纪录

1) 需要表名和该表每列的值使用INSERT命令插入数据,GP是自动提交;
2) 显式的指定列名插入数据,当不知道当前表中列名时;
3) 从另一个表中获取并插入到当前表;
4) 使用一个命令插入多条记录,AO表为批量装载做了优化,不建议在AO表上使用单条的INSERT语句。

devdw=# \h insert         查看当前insert命令的帮助
Command:     INSERT
Description: create new rows in a table
Syntax:
INSERT INTO table [ ( column [, ...] ) ]
    { DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) [, ...] | query }
    [ RETURNING * | output_expression [ AS output_name ] [, ...] ]
devdw=# \d tb_cp_02
      Table "public.tb_cp_02"
 Column |     Type     | Modifiers
--------+--------------+-----------
 id     | integer      |
 rank   | integer      |
 year   | integer      |
 gender | character(1) |
 count  | integer      |
Indexes:
    "bmidx_01" bitmap (count)
Number of child tables: 5 (Use \d+ to list them.)
Distributed by: (id)

devdw=# insert into tb_cp_02(id,rank,year,gender,count) values (1,2,3,'M',4);  往tb_cp_02表中逐个字段的添加数据
INSERT 0 1

devdw=# select * from tb_cp_02;   查看当前tb_cp_02表中数据
 id | rank | year | gender | count
----+------+------+--------+-------
  1 |    2 |    3 | M      |     4
(1 row)


devdw=# insert into tb_cp_02(rank,year,gender,count,id) values (3,4,'W',5,2);  往tb_cp_02表中随机字段的添加数据
INSERT 0 1
devdw=# select * from tb_cp_02;
 id | rank | year | gender | count
----+------+------+--------+-------
  1 |    2 |    3 | M      |     4
  2 |    3 |    4 | W      |     5
(2 rows)
devdw=# insert into tb_cp_02  select * from tb_cp_02; 通过查询tb_cp_02表中数据后再往其中插入数据
INSERT 0 2
devdw=# select * from tb_cp_02;
 id | rank |
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值