经过半年多的开发,PostgreSQL 8.0 逐步浮出水面。
也许大家会好奇,这个版本将会有什么功能?有什么增强呢?
在特性方面,我们有望获得下述特性:
1, windows 移植,注意,这是本机版,这不是cygwin的虚拟unix移植
(有种叫my什么什么什么数据库的,虽然早就有了windows版本,
不过可不要以为是本机移植哦;),而是地地道道的本机移植!性能是与
利用cygwin.dll虚拟unix移植无法相比的。(当然,比不过 SQL SERVER
这样的 M$ 的东西我一点都不奇怪,hakcer们没功夫研究 M$ 的那些未公开
的调用;)
2,嵌套事务,记得很多朋友希望能在一个事务里面有子事务,那么,
这个版本很有可能能实现这个功能了。
3,及时恢复(PITR),有了这个功能,你可以实现增量备份、在线备份了。
也可以实现基于日志文件拷贝的异步复制方案了。PostgreSQL 的 DBA 可以舒服
许多了。
4,表空间(table space),从此,DBA 的日子又要忙碌起来,为了榨取
硬件的一点点性能,不断地在不同磁盘设备上调剂 postgresql 数据存放
的地点。
5,后端写进程,原来 PostgreSQL 的缓冲区管理是完全交给 OS 进行的,
假如一个稍微差劲点的OS,比如,那个叫 winxxxx 的 OS,很可能性能会
比合适的UNIX类系统差距不小,有了这个后端写进程,也许在很大程度上
可以弥补一些差距。并且也会提高其它平台的性能。
6,增加了硬盘用限,防止长时间过分使用硬盘导致的并发性降低。
以前,vacuum和pg_dump等类的动作会导致系统几乎无响应,而7.5的
响应性将大大增强。
7,自动 vacuum 进程,PostgreSQL 的 DBA 们工作又可以进一步轻松了,
因为日常的 vacuum 工作可以由一个可配置的进程自动进行了。
8,智能的索引判断,不再担心常量的类型不匹配导致的索引不正确使用
的问题(导致恶劣的性能)。
9,可以使用名字的参数,plpgsql函数现在可以支持命名参数了,
这样,函数体里面一堆的 ... alias for $n; 就将成为历史。
10,行类型终于可以在表中使用了,现在我们可以这么干:
CREATE TYPE complex AS (
r double precision,
i double precision
);
CREATE TYPE inventory_item AS (
name text,
supplier_id integer,
price numeric
);
CREATE TABLE on_hand (
item inventory_item,
count integer
);
INSERT INTO on_hand VALUES (ROW('fuzzy dice', 42, 1.99), 1000);
11,alter table 终于可以改变一个字段的类型了!
12,在存储过程语言里,我们可以捕获错误!更精细地控制过程的运行:
INSERT INTO mytab(firstname, lastname) VALUES('Tom', 'Jones');
BEGIN
UPDATE mytab SET firstname = 'Joe' WHERE lastname = 'Jones';
x := x + 1;
y := x / 0;
EXCEPTION
WHEN division_by_zero THEN
RAISE NOTICE 'caught division_by_zero';
RETURN x;
END;
上面是 8.0 中非常可能发生的一些特性,现在也许不能说他们将全部
进入 8.0,但是可以肯定地说,即使其中一半特性进入 8.0,那么 8.0
也将会是 PostgreSQL 历史上一个变化非常巨大的版本之一。
下载postgresql-8.0-beta2-dev3.zip
本文地址:http://com.8s8s.com/it/it27464.htm