首页数据库postgres数据库?postgreSQL数据库有什么用啊

postgres数据库?postgreSQL数据库有什么用啊

编程之家2023-10-16115次浏览

大家好,今天给各位分享postgres数据库的一些知识,其中也会对postgreSQL数据库有什么用啊进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

postgres数据库?postgreSQL数据库有什么用啊

postgressql数据源怎么配置

PostgresSQL提供了许多数据库配置参数,本章将介绍每个参数的作用和如何配置每一个参数。

10.1如何设置数据库参数

所有的参数的名称都是不区分大小写的。每个参数的取值是布尔型、整型、浮点型和字符串型这四种类型中的一个,分别用boolean

、integer、 floating point和string表示。布尔型的值可以写成ON、OFF、 TRUE、 FALSE、 YES、 NO、 1和 0,而且不区分大小

写。

有些参数用来配置内存大小和时间值。内存大小的单位可以是KB、MB和GB。时间的单位可以是毫秒、秒、分钟、小时和天。用ms表示

postgres数据库?postgreSQL数据库有什么用啊

毫秒,用s表示秒,用 min表示分钟,用h表示小时,用d表示天。表示内存大小和时间值的参数参数都有一个默认的单位,如果用户

在设置参数的值时没有指定单位,则以参数默认的单位为准。例如,参数shared_buffers表示数据缓冲区的大小,它的默认单位是

数据块的个数,如果把它的值设成8,因为每个数据块的大小是 8KB,则数据缓冲区的大小是8*8=64KB,如果将它的值设成128MB,

则数据缓冲区的大小是128MB。参数vacuum_cost_delay的默认单位是毫秒,如果把它的值设成10,则它的值是10毫秒,如果把它的

值设成100s,则它的值是100秒。

所有的参数都放在文件 postgresql.conf中,下面是一个文件实例:

postgres数据库?postgreSQL数据库有什么用啊

#这是注释

log_connections= yes

log_destination='syslog'

search_path='"$user", public'

每一行只能指定一个参数,空格和空白行都会被忽略。“#”表示注释,注释信息不用单独占一行,可以出现在配置文件的任何地方

。如果参数的值不是简单的标识符和数字,应该用单引号引起来。如果参数的值中有单引号,应该写两个单引号,或者在单引号前面

加一个反斜杠。

一个配置文件也可以包含其它配置文件,使用include指令能够达到这个目的,例如,假设postgresql.conf文件中有下面一行:

include‘my.confg’

文件my.config中的配置信息也会被数据库读入。include指令指定的配置文件也可以用include指令再包含其它配置文件。如果

include指令中指定的文件名不是绝对路径,数据库会在postgresql.conf文件所在的目录下查找这个文件。

用户也可以在数据库启动以后修改postgresql.conf配置文件,使用命令pg_ctl reload来通知数据库重新读取配置文件。注意,有些

参数在数据库启动以后,不能被修改,只有重新启动数据库以后,新的参数值才能生效。另外一些参数可以在数据库运行过程中被

修改而且新的值可以立即生效。所以数据库在运行过程中重新读取参数配置文件以后,不是所有的参数都会被赋给新的值。

用户可以在自己建立的会话中执行命令SET修改某些配置参数的值(注意不是全部参数),例如:

SET ENABLE_SEQSCAN TO OFF;

另外,有些参数只有数据库超级用户才能使用SET命令修改它们。用户可以在psql中执行命令show来查看所有的数据库参数的当前值

。例如:

(1)show all;--查看所有数据库参数的值

(2)show search_path;--查看参数search_path的值

10.2连接与认证

10.2.1连接设置

listen_addresses(string)

这个参数只有在启动数据库时,才能被设置。它指定数据库用来监听客户端连接的TCP/IP地址。默认是值是*,表示数据库在启动以

后将在运行数据的机器上的所有的IP地址上监听用户请求(如果机器只有一个网卡,只有一个IP地址,有多个网卡的机器有多个 IP

地址)。可以写成机器的名字,也可以写成IP地址,不同的值用逗号分开,例如,’server01’,’140.87.171.49, 140.87.171.21

’。如果被设成localhost,表示数据库只能接受本地的客户端连接请求,不能接受远程的客户端连接请求。

port(integer)

这个参数只有在启动数据库时,才能被设置。它指定数据库监听户端连接的TCP端口。默认值是5432。

max_connections(integer)

这个参数只有在启动数据库时,才能被设置。它决定数据库可以同时建立的最大的客户端连接的数目。默认值是100。

superuser_reserved_connections(integer)

这个参数只有在启动数据库时,才能被设置。它表示预留给超级用户的数据库连接数目。它的值必须小于max_connections。普通用

户可以在数据库中建立的最大的并发连接的数目是max_connections- superuser_reserved_connections,默认值是3。

unix_socket_group(string)

这个参数只有在启动数据库时,才能被设置。设置Unix-domain socket所在的操作系统用户组。默认值是空串,用启动数据库的操作

系统用户所在的组作为Unix-domain socket的用户组。

unix_socket_permissions(integer)

这个参数只有在启动数据库时,才能被设置。它设置Unix-domain socket的访问权限,格式与操作系统的文件访问权限是一样的。默

认值是0770,表示任何操作系统用户都能访问Unix-domain socket。可以设为0770(所有Unix-domain socket文件的所有者所在的组

包含的用户都能访问)和0700(只有Unix-domain socket文件的所有者才能访问)。对于Unix-domain socket,只有写权限才有意义,

读和执行权限是没有意义的。

tcp_keepalives_idle(integer)

这个参数可以在任何时候被设置。默认值是0,意思是使用操作系统的默认值。它设置TCP套接字的TCP_KEEPIDLE属性。这个参数对于

通过Unix-domain socket建立的数据库连接没有任何影响。

tcp_keepalives_interval(integer)

这个参数可以在任何时候被设置。默认值是0,意思是使用操作系统的默认值。它设置TCP套接字的TCP_KEEPINTVL属性。这个参数对

于通过Unix-domain socket建立的数据库连接没有任何影响。

tcp_keepalives_count(integer)

这个参数可以在任何时候被设置。默认值是0,意思是使用操作系统的默认值。它设置TCP套接字的TCP_KEEPCNT属性。这个参数对于

通过Unix-domain socket建立的数据库连接没有任何影响。

10.2.2.安全与认证

authentication_timeout(integer)

这个参数只能在postgresql.conf文件中被设置,它指定一个时间长度,在这个时间长度内,必须完成客户端认证操作,否则客户端

连接请求将被拒绝。它可以阻止某些客户端进行认证时长时间占用数据库连接。单位是秒,默认值是60。

ssl(boolean)

这个参数只有在启动数据库时,才能被设置。决定数据库是否接受SSL连接。默认值是off。

ssl_ciphers(string)

指定可以使用的SSL加密算法。查看操作系统关于openssl的用户手册可以得到完整的加密算法列表(执行命令openssl ciphers–v

也可以得到)。

10.3资源消耗

10.3.1内存

shared_buffers(integer)

这个参数只有在启动数据库时,才能被设置。它表示数据缓冲区中的数据块的个数,每个数据块的大小是8KB。数据缓冲区位于数据

库的共享内存中,它越大越好,不能小于128KB。默认值是1024。

temp_buffers(integer)

这个参数可以在任何时候被设置。默认值是8MB。它决定存放临时表的数据缓冲区中的数据块的个数,每个数据块的大小是8KB。临时

表缓冲区存放在每个数据库进程的私有内存中,而不是存放在数据库的共享内存中。默认值是1024。

max_prepared_transactions(integer)

这个参数只有在启动数据库时,才能被设置。它决定能够同时处于prepared状态的事务的最大数目(参考PREPARE TRANSACTION命令

)。如果它的值被设为0。则将数据库将关闭prepared事务的特性。它的值通常应该和max_connections的值一样大。默认值是5。

work_mem(integer)

这个参数可以在任何时候被设置。它决定数据库的排序操作和哈希表使用的内存缓冲区的大小。如何work_mem指定的内存被耗尽,数

据库将使用磁盘文件进行完成操作,速度会慢很多。ORDER BY、DISTINCT和merge连接会使用排序操作。哈希表在Hash连接、hash聚

集函数和用哈希表来处理IN谓词中的子查询中被使用。单位是 KB,默认值是1024。

maintenance_work_mem(integer)

这个参数可以在任何时候被设置。它决定数据库的维护操作使用的内存空间的大小。数据库的维护操作包括VACUUM、CREATE INDEX和

ALTER TABLE ADD FOREIGN KEY等操作。 maintenance_work_mem的值如果比较大,通常可以缩短VACUUM数据库和从dump文件中恢复数

据库需要的时间。 maintenance_work_mem存放在每个数据库进程的私有内存中,而不是存放在数据库的共享内存中。单位是KB,默

认值是16384。

max_stack_depth(integer)

这个参数可以在任何时候被设置,但只有数据库超级用户才能修改它。它决定一个数据库进程在运行时的STACK所占的空间的最大值

。数据库进程在运行时,会自动检查自己的STACK大小是否超过max_stack_depth,如果超过,会自动终止当前事务。这个值应该比

操作系统设置的进程STACK的大小的上限小1MB。使用操作系统命令“ulimit–s“可以得到操作系统设置的进程STACK的最大值。单

位是KB,默认值是100。

10.3.2 Free Space Map

数据库的所有可用空间信息都存放在一个叫free space map(FSM)的结构中,它记载数据文件中每个数据块的可用空间的大小。FSM

中没有记录的数据块,即使有可用空间,也不会系统使用。系统如果需要新的物理存储空间,会首先在FSM中查找,如果FSM中没有

一个数据页有足够的可用空间,系统就会自动扩展数据文件。所以,FSM如果太小,会导致系统频繁地扩展数据文件,浪费物理存储

空间。命令VACUUM VERBOSE在执行结束以后,会提示当前的FSM设置是否满足需要,如果FSM的参数值太小,它会提示增大参数。

FSM存放在数据库的共享内存中,由于物理内存的限制,FSM不可能跟踪数据库的所有的数据文件的所有数据块的可用空间信息,只能

跟踪一部分数据块的可用空间信息。

max_fsm_relations(integer)

这个参数只有在启动数据库时,才能被设置。默认值是1000。它决定FSM跟踪的表和索引的个数的上限。每个表和索引在FSM中占7个

字节的存储空间。

max_fsm_pages(integer)

这个参数只有在启动数据库时,才能被设置。它决定FSM中跟踪的数据块的个数的上限。initdb在创建数据库集群时会根据物理内存

的大小决定它的值。每个数据块在fsm中占6个字节的存储空间。它的大小不能小于16* max_fsm_relations。默认值是20000。

10.3.3内核资源

max_files_per_process(integer)

这个参数只有在启动数据库时,才能被设置。他设定每个数据库进程能够打开的文件的数目。默认值是1000。

shared_preload_libraries(string)

这个参数只有在启动数据库时,才能被设置。它设置数据库在启动时要加载的操作系统共享库文件。如果有多个库文件,名字用逗号

分开。如果数据库在启动时未找到shared_preload_libraries指定的某个库文件,数据库将无法启动。默认值为空串。

10.3.4垃圾收集

执行VACUUM和ANALYZE命令时,因为它们会消耗大量的CPU与IO资源,而且执行一次要花很长时间,这样会干扰系统执行应用程序发

出的SQL命令。为了解决这个问题,VACUUM和ANALYZE命令执行一段时间后,系统会暂时终止它们的运行,过一段时间后再继续执行

这两个命令。这个特性在默认的情况下是关闭的。将参数 vacuum_cost_delay设为一个非零的正整数就可以打开这个特性。

用户通常只需要设置参数vacuum_cost_delay和vacuum_cost_limit,其它的参数使用默认值即可。VACUUM和ANALYZE命令在执行过程

中,系统会计算它们执行消耗的资源,资源的数量用一个正整数表示,如果资源的数量超过 vacuum_cost_limit,则执行命令的进程

会进入睡眠状态,睡眠的时间长度是是vacuum_cost_delay。 vacuum_cost_limit的值越大,VACUUM和ANALYZE命令在执行的过程中

,睡眠的次数就越少,反之,vacuum_cost_limit的值越小,VACUUM和ANALYZE命令在执行的过程中,睡眠的次数就越多。

vacuum_cost_delay(integer)

这个参数可以在任何时候被设置。默认值是0。它决定执行VACUUM和ANALYZE命令的进程的睡眠时间。单位是微秒。它的值最好是10

的整数,如果不是10的整数,系统会自动将它设为比该值大的并且最接近该值的是10的倍数的整数。如果值是0,VACUUM和ANALYZE

命令在执行过程中不会主动进入睡眠状态,会一直执行下去直到结束。

vacuum_cost_page_hit(integer)

这个参数可以在任何时候被设置。默认值是1。

vacuum_cost_page_miss(integer)

这个参数可以在任何时候被设置。默认值是10。

vacuum_cost_page_dirty(integer)

这个参数可以在任何时候被设置。默认值是20。

vacuum_cost_limit(integer)

这个参数可以在任何时候被设置。默认值是200。

10.3.5后台写数据库进程

后台写数据库进程负责将数据缓冲区中的被修改的数据块(又叫脏数据块)写回到数据库物理文件中。

bgwriter_delay(integer)

这个参数只能在文件postgresql.conf中设置。它决定后台写数据库进程的睡眠时间。后台写数据库进程每次完成写数据到物理文件

中的任务以后,就会睡眠bgwriter_delay指定的时间。 bgwriter_delay的值应该是10的倍数,如果用户设定的值不是10的倍数,数

据库会自动将参数的值设为比用户指定的值大的最接近用户指定的值的同时是10的倍数的值。单位是毫秒,默认值是200。

bgwriter_lru_maxpages(integer)

这个参数只能在文件postgresql.conf中设置。默认值是100。后台写数据库进程每次写脏数据块时,写到外部文件中的脏数据块的个

数不能超过 bgwriter_lru_maxpages指定的值。例如,如果它的值是500,则后台写数据库进程每次写到物理文件的数据页的个数不

能超过500,若超过,进程将进入睡眠状态,等下次醒来再执行写物理文件的任务。如果它的值被设为0,后台写数据库进程将不会

写任何物理文件(但还会执行检查点操作)。

bgwriter_lru_multiplier(floating point)

这个参数只能在文件postgresql.conf中设置。默认值是2.0。它决定后台写数据库进程每次写物理文件时,写到外部文件中的脏数据

块的个数(不能超过bgwriter_lru_maxpages指定的值)。一般使用默认值即可,不需要修改这个参数。这个参数的值越大,后台写

数据库进程每次写的脏数据块的个数就越多。

10.4事务日志

full_page_writes(boolean)

这个参数只能在postgresql.conf文件中被设置。默认值是on。打开这个参数,可以提高数据库的可靠性,减少数据丢失的概率,但

是会产生过多的事务日志,降低数据库的性能。

wal_buffers(integer)

这个参数只有在启动数据库时,才能被设置。默认值是8。它指定事务日志缓冲区中包含的数据块的个数,每个数据块的大小是8KB,

所以默认的事务日志缓冲区的大小是8*8=64KB。事务日志缓冲区位于数据库的共享内存中。

wal_writer_delay(integer)

这个参数只能在postgresql.conf文件中被设置。它决定写事务日志进程的睡眠时间。WAL进程每次在完成写事务日志的任务后,就会

睡眠 wal_writer_delay指定的时间,然后醒来,继续将新产生的事务日志从缓冲区写到WAL文件中。单位是毫秒(millisecond),

默认值是200。

commit_delay(integer)

这个参数可以在任何时候被设置。它设定事务在发出提交命令以后的睡眠时间,只有在睡眠了commit_delay指定的时间以后,事务产

生的事务日志才会被写到事务日志文件中,事务才能真正地提交。增大这个参数会增加用户的等待时间,但是可以让多个事务被同

时提交,提高系统的性能。如果数据库中的负载比较高,而且大部分事务都是更新类型的事务,可以考虑增大这个参数的值。下面

的参数commit_siblings会影响commit_delay是否生效。默认值是0,单位是微秒(microsecond)。

commit_siblings(integer)

这个参数可以在任何时候被设置。这个参数的值决定参数commit_delay是否生效。假设commit_siblings的值是5,如果一个事务发出

一个提交请求,此时,如果数据库中正在执行的事务的个数大于或等于5,那么该事务将睡眠commit_delay指定的时间。如果数据库

中正在执行的事务的个数小于5,这个事务将直接提交。默认值是5。

10.5检查点

checkpoint_segments(integer)

这个参数只能在postgresql.conf文件中被设置。默认值是3。它影响系统何时启动一个检查点操作。如果上次检查点操作结束以后,

系统产生的事务日志文件的个数超过checkpoint_segments的值,系统就会自动启动一个检查点操作。增大这个参数会增加数据库崩

溃以后恢复操作需要的时间。

checkpoint_timeout(integer)

这个参数只能在postgresql.conf文件中被设置。单位是秒,默认值是300。它影响系统何时启动一个检查点操作。如果现在的时间减

去上次检查点操作结束的时间超过了checkpoint_timeout的值,系统就会自动启动一个检查点操作。增大这个参数会增加数据库崩

溃以后恢复操作需要的时间。

checkpoint_completion_target(floating point)

这个参数控制检查点操作的执行时间。合法的取值在0到1之间,默认值是0.5。不要轻易地改变这个参数的值,使用默认值即可。这

个参数只能在postgresql.conf文件中被设置。

10.6归档模式

archive_mode(boolean)

这个参数只有在启动数据库时,才能被设置。默认值是off。它决定数据库是否打开归档模式。

archive_dir(string)

这个参数只有在启动数据库时,才能被设置。默认值是空串。它设定存放归档事务日志文件的目录。

archive_timeout(integer)

这个参数只能在postgresql.conf文件中被设置。默认值是0。单位是秒。如果archive_timeout的值不是0,而且当前时间减去数据

库上次进行事务日志文件切换的时间大于archive_timeout的值,数据库将进行一次事务日志文件切换。一般情况下,数据库只有在

一个事务日志文件写满以后,才会切换到下一个事务日志文件,设定这个参数可以让数据库在一个事务日志文件尚未写满的情况下

切换到下一个事务日志文件。

10.7优化器参数

10.7.1存取方法参数

下列参数控制查询优化器是否使用特定的存取方法。除非对优化器特别了解,一般情况下,使用它们默认值即可。

enable_bitmapscan(boolean)

打开或者关闭bitmap-scan。默认值是 on。

enable_hashagg(boolean)

打开或者关闭hashed aggregation。默认值是 on。

enable_hashjoin(boolean)

打开或者关闭hash-join。默认值是 on。

enable_indexscan(boolean)

打开或者关闭index-scan。默认值是 on。

enable_mergejoin(boolean)

打开或者关闭merge-join。默认值是 on。

enable_nestloop(boolean)

打开或者关闭nested-loop join。默认值是 on。不可能完全不使用nested-loop join,关闭这个参数会让系统在有其它存取方法可

用的情况下,不使用nested-loop join。

enable_seqscan(boolean)

打开或者关闭sequential scan。默认值是 on。不可能完全不使用sequential scan,关闭这个参数会让系统在有其它存取方法可用

的情况下,不使用sequential scan。

PostgreSQL从菜鸟到专家 什么是PostgreSQL数据库

安装PostgreSQL数据库之后,默认是只接受本地访问连接。如果想在其他主机上访问PostgreSQL数据库服务器,就需要进行相应的配置。配置远程连接PostgreSQL数据库的步骤很简单,只需要修改data目录下的pg_hba.conf和postgresql.conf,其中pg_hba.conf是用来配置对数据库的访问权限,postgresql.conf文件用来配置PostgreSQL数据库服务器的相应的参数。下面介绍配置的步骤:

1.修改pg_hba.conf文件,配置用户的访问权限:

# TYPE DATABASE USER CIDR-ADDRESS METHOD

#"local" is for Unix domain socket connections only

local all all trust

# IPv4 local connections:

host all all 127.0.0.1/32 trust

host all all 192.168.1.0/24 md5

# IPv6 local connections:

host all all::1/128 trust

其中红色标识的内容为新添加的内容,表示允许网段192.168.1.0上的所有主机使用所有合法的数据库用户名访问数据库,并提供加密的密码验证。在我们的环境中,我们需要在主机192.168.1.5上使用postgres用户访问192.168.1.9上的PostgreSQL数据库。

2.修改postgresql.conf文件,将数据库服务器的监听模式修改为监听所有主机发出的连接请求。

定位到#listen_addresses='localhost'。PostgreSQL安装完成后,默认是只接受来在本机localhost的连接请求,通过将改行内容修改为listen_addresses='*'来允许数据库服务器监听来自任何主机的连接请求:

listen_addresses='*'# what IP address(es) to listen on;

# comma-separated list of addresses;

# defaults to'localhost','*'= all

#(change requires restart)

修改之后,保存并退出,然后重起数据库,就可以在在远程机器上访问PostgreSQL数据库了。

另外,数据库管理小贴士:

matrix数据库使用的是PostgreSQL数据库。你可以安装一个类似phpmyadmin的管理

关于postgres数据库

提示说什么不能连接到postgres数据库

错误:在Administrator这个用户的密码验证失败!!

你最好有图形界面登录上去才行

下面是一个例子:

希望可以帮你吧

在linux系统中创建postgres数据库--

下面是创建数据库的例子和说明,数据库名为TestDB

1. in command line:

以postgres用户登录:

#su- postgres

2.初始化数据库:

$initdb

3.修改/var/lib/pgsql/data目录下的pg_hba.conf和postgresql.conf:

1)pg_hba.conf

将# IPv4-style local connections下面的内容换成:

# IPv4-style local connections:

host all all 127.0.0.1 255.255.255.255 trust

host all all 0.0.0.0 0.0.0.0 trust

2)postgresql.conf

将tcpip_socket及max_connections改成:

tcpip_socket= true#采用tcpip连接的方式

max_connections= 100#最大连结数

4.在service列表里,重新启动postgresql

5.创建数据库TestDB,使用unicode编码

$createdb-E unicode-e TestDB

6.导入数据库表结构和数据(事先准备好sql文件output.sql)

$psql TestDB</var/lib/pgsql/data/output.sql

ok,导入完毕,然后使用pgadmin3客户端工具即可访问,数据库名为TestDB,用户名为postgres,密码为postgres,也可以不要密码。

如果Linux安装了防火墙,请到security level画面去禁止防火墙,以便客户端可以访问.

如果要导出表结构及数据,请使用命令:

pg_dump-d-f output.sql TestDB-h 192.168.0.1-U postgres-P postgres

其中TestDB为数据库名称, 192.168.0.1为数据库服务器IP地址, postgres分别为数据库用户和密码

另外,如果有sql文件如output.sql需要事先从usb盘拷贝到linux,请参照如下步骤装载usb:

1.察看Linux是否已经正确安装usb驱动程序;

2.运行 fdisk-l/dev/sda看系统是否能找到usb盘

3.创建usb目录

#mkdir/mnt/usb

4.装载usb设备

#mount-t msdos/dev/sda1/mnt/usb

如果您的文件系统为fat32,则使用:

#mount-t vfat/dev/sda1/mnt/usb

5.查看usb存储器中的文件:

ls/mnt/usb

postgreSQL数据库有什么用啊

优点事实上, PostgreSQL的特性覆盖了 SQL-2/SQL-92和 SQL-3/SQL-99,首先,它包括了可以说是目前世界上最丰富的数据类型的支持,其中有些数据类型可以说连商业数据库都不具备,比如 IP类型和几何类型等;其次,PostgreSQL是全功能的自由软件数据库,很长时间以来,PostgreSQL是唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统。直到最近才有 Inprise的 InterBase以及 SAP等厂商将其原先专有软件开放为自由软件之后才打破了这个唯一。最后,PostgreSQL拥有一支非常活跃的开发队伍,而且在许多黑客的努力下,PostgreSQL的质量日益提高。

从技术角度来讲,PostgreSQL采用的是比较经典的 C/S(client/server)结构,也就是一个客户端对应一个服务器端守护进程的模式,这个守护进程分析客户端来的查询请求,生成规划树,进行数据检索并最终把结果格式化输出后返回给客户端。为了便于客户端的程序的编写,由数据库服务器提供了统一的客户端 C接口。而不同的客户端接口都是源自这个 C接口,比如 ODBC,JDBC,Python,Perl,Tcl,C/C++,ESQL等,同时也要指出的是,PostgreSQL对接口的支持也是非常丰富的,几乎支持所有类型的数据库客户端接口。这一点也可以说是 PostgreSQL一大优点。

缺点

从 Postgres开始,PostgreSQL就经受了多次变化。

首先,早期的 PostgreSQL继承了几乎所有 Ingres, Postgres, Postgres95的问题:过于学院味,因为首先它的目的是数据库研究,因此不论在稳定性,性能还是使用方便方面,长期以来一直没有得到重视,直到 PostgreSQL项目开始以后,情况才越来越好,目前,PostgreSQL已经完全可以胜任任何中上规模范围内的应用范围的业务。目前有报道的生产数据库的大小已经有 TB级的数据量,已经逼近 32位计算的极限。不过学院味也给 PostgreSQL带来一个意想不到的好处:大概因为各大学的软硬件环境差异太大的缘故,它是目前支持平台最多的数据库管理系统的一种,所支持的平台多达十几种,包括不同的系统,不同的硬件体系。至今,它仍然保持着支持平台最多的数据库管理系统的称号。

其次,PostgreSQL的确还欠缺一些比较高端的数据库管理系统需要的特性,比如数据库集群,更优良的管理工具和更加自动化的系统优化功能等提高数据库性能的机制等。

END,本文到此结束,如果可以帮助到大家,还望关注本站哦!

mac主机,mac能接主机吗mpp数据库,mpp数据库跟oracle的区别