GP中数据管理

Greenplum产品是基于流行的PostgreSQL之上开发,几乎所有的PostgreSQL客户端工具及PostgreSQL应用都能运行在Greenplum平台上

PostgreSQL支持大部分 SQL标准并且提供了许多其他现代特性:复杂查询、外键触发器、视图、事务完整性、MVCC。同样,PostgreSQL 可以用许多方法扩展,比如, 通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言。并且,因为许可证的灵活,任何人都可以以任何目的免费使用、修改、和分发 PostgreSQL,不管是私用、商用、还是学术研究使用。

【管理数据】
------关于GP中的并发控制------
不像传统数据库系统使用 lock机制 来做并发控制。
GP保证数据一致性使用 multiversion model (Multiversion Concurrency Control,MVCC)。
读不会阻塞写,写也不会阻塞读。

GP中Lock Modes


------插入数据------
单条或少量数据插入使用  INSERT命令
大批量数据插入使用外部表(CREATE EXTERNAL TABLE) 或 COPY 命令
(注: append-only表对批量载入的数据有做优化。单行插入不建议使用append-only表。)

INSERT SQL示例:
INSERT INTO products VALUES (1, 'Cheese', 9.99);  --插入
INSERT INTO products VALUES (1, 'Cheese', 9.99);  --指定列名
INSERT INTO films SELECT * FROM tmp_films WHERE date_prod <  '2004-05-07';  --把1个表数据插入另一个表
INSERT INTO products (product_no, name, price) VALUES
    (1, 'Cheese', 9.99),
    (2, 'Bread', 1.99),
    (3, 'Milk', 2.99);  --单条sql插入多行数据

 

------更新数据------
GP中UPDATE的限制条件:
1. distribution key 不能被更新
2. mirror启动时,在update语句中不能使用STABLE 或 VOLATILE
3. 不支持RETURNING

UPDATE SQL示例:
UPDATE products SET price = 10 WHERE price = 5; --更新单行或多行数据

 

------删除数据------
GP中使用DETELE的限制条件:
1. mirror启动时,在delete语句中不能使用STABLE 或 VOLATILE
2. 不支持RETURNING

Truncate是不扫描table。

DETELE SQL示例:
DELETE FROM products WHERE price = 10; --根据where条件删除
DELETE FROM products;  --删除表中所有数据
TRUNCATE mytable; --清空表

 

【事务】
BEGIN 或  START TRANSACTION  --开启事务
END 或 COMMIT --结束事务
ROLLBACK      --回滚
SAVEPOINT     -- 分段提交或回滚事务

 

------事务隔离级别-------
4种事务隔离级别:
1. read committed (GP Default)
2. serializable
3. read uncommitted
4. repeatable read

 

更改事务隔离级别方法:
1. 当BEGIN开始事务的时候,申明事务隔离级别
2. SET TRANSACTION

 

【整理数据库】
数据库有大量删除和修改的话,需要定期清理数据库。
使用VACUUM命令来做清理。
如:
 VACUUM mytable; --清理无用的记录
VACUUM命令也进行表级的统计,例如:行数统计
一般在Load大量数据后,做一次VACUUM(含append-only table)
注: GP中不推荐使用 VACUUM FULL。

free space map中保存着无用的记录,空间必须保证足够大已用来存放数据。
修改以下2个参数:
max_fsm_pages
max_fsm_relations

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值