免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2743 | 回复: 6
打印 上一主题 下一主题

PostgreSQL 8.0 的精彩世界!(现在叫8.0了!) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-08-10 23:03 |只看该作者 |倒序浏览
copyright 何伟平 (laser(at)qmail(dot)zhengmai(dot)net(dot)cn)

经过半年多的开发,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等类的动作会导致系统几乎无响应,而8.0的
响应性将大大增强。

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 历史上一个变化非常巨大的版本之一。

论坛徽章:
0
2 [报告]
发表于 2004-08-11 11:17 |只看该作者

PostgreSQL 8.0 的精彩世界!(现在叫8.0了!)

喜欢Postgresql.
喜欢他越做越好。

论坛徽章:
0
3 [报告]
发表于 2004-08-11 18:18 |只看该作者

PostgreSQL 8.0 的精彩世界!(现在叫8.0了!)

原帖由 "linux_prog" 发表:
喜欢Postgresql.
喜欢他越做越好。

有个问题就是,中文环境下的 token 和 timezone 问题都没解决,怎么就这么快出 beta1 了呢?莫非中国没人用 pgsql,还是用了不反馈,或者反馈了没人管?

论坛徽章:
0
4 [报告]
发表于 2004-08-11 21:33 |只看该作者

PostgreSQL 8.0 的精彩世界!(现在叫8.0了!)

没听说过中文token是什么意思。
timezone的问题在于没有一个很好的机制来一揽子解决,
所以,目前设置TZ环境变量的方法最简单。说白了就是拿
windows当unix来用。这个问题怎么没人提呢,只是大家
建议的方法都不是直接在initdb里插入一个strcmp(套路都没
讨论,肯定被拒),而是
建议在installer里选择一下国家和时区,在initdb之前先自动
set TZ=XXX一把。我觉得这个方法比较通用。

论坛徽章:
0
5 [报告]
发表于 2004-08-12 17:35 |只看该作者

PostgreSQL 8.0 的精彩世界!(现在叫8.0了!)

原帖由 "bitbird" 发表:
没听说过中文token是什么意思。
timezone的问题在于没有一个很好的机制来一揽子解决,
所以,目前设置TZ环境变量的方法最简单。说白了就是拿
windows当unix来用。这个问题怎么没人提呢,只是大家
建议的方法都不..........

呵呵,设置 TZ 等于是埋没了数据库自动检测时区的功能,严重不推荐.

至于 token 问题,没见到才怪呢,initdb --noclean 后配置文件里有
几个定义字串里有'Chinese_People's xxx',这样中间那个单引号就
变成了结束符号而不是真正的's所有格字符了,从而导致错误.

这两个问题在我的 PostgreSQL 8.0dev diff patch 里都基本解决
了,建议去看看.当然,用函数先扫描字串是最标准的方案,有空再说吧.

论坛徽章:
0
6 [报告]
发表于 2004-08-13 11:53 |只看该作者

PostgreSQL 8.0 的精彩世界!(现在叫8.0了!)

终于等到8.0发布了,可还是不支持嵌套表呀,大家有什么办法吗

论坛徽章:
0
7 [报告]
发表于 2004-08-21 10:01 |只看该作者

PostgreSQL 8.0 的精彩世界!(现在叫8.0了!)

what's 嵌套表?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP