自从2020年底开始接触 PostgreSQL 以来就喜欢上了这个数据库,个人感觉比 MySQL 好用,多表联合查询性能好很多,同时也不存在 SQLServer 的版权授权费用问题。搭配 .NET 开发很好用,目前手里的项目全部都是采用 PostgreSQL 进行数据支撑的。
本文主要说一下在 Windows 系统中安装 PostgreSQL 的方法,我这里没有采用 exe 安装包的形式去安装,EDB 发布的那个 exe 安装包形式的对于中文环境数据库的排序规则设定有问题,所以我采用了官方 ZIP 压缩包形式解压后手动安装的形式。

先说一下安装包的获取方式,访问
https://www.
postgresql.org/download
/windows/
目前最新稳定版是 PostgreSQL 14.5 点击就可以获取到我们所需要的 zip 压缩包了默认其中包含有这些文件夹,我箭头标记的 doc, pgAdmin 4 , StackBuilder ,symbols 四个文件夹可以直接删除,然后进入 bin 目录,再删掉 stackbuilder 相关的一些文件即可,我贴了一个 bat 命令,大家可以直接在 bin 文件夹中执行下面的命令,对相关文件进行删除。del 
stackbuilder
.
exe
del 
libcurl
.
dll
del 
wxbase313u_vc_x64_custom
.
dll
del 
wxbase313u_xml_vc_x64_custom
.
dll
del 
wxbase313ud_net_vc_x64_custom
.
dll
del 
wxmsw313u_adv_vc_x64_custom
.
dll
del 
wxmsw313u_core_vc_x64_custom
.
dll
del 
wxmsw313ud_aui_vc_x64_custom
.
dll
del 
wxmsw313ud_html_vc_x64_custom
.
dll
del 
wxmsw313ud_xrc_vc_x64_custom
.
dll
cmd
d:
cd 
D:
Software
PostgreSQL
cd 
bin
pg_ctl
.
exe
 register
 -D
 "D:SoftwarePostgreSQLdata"
 -PostgreSQL
host all all 0.0.0.0/0 scram-sha-256host all all ::/0 scram-sha-256也可以通过 Windows 服务来控制启动和停止 如果想要卸载 PostgreSQL 则需要先停止 服务net
 stop
 PostgreSQL

关于在Windows 环境运行 PostgreSQL 在连接数的配置需要注意以下这个知识点:由于PostgreSQL所依赖的一些库依赖于user32.dll,后者从内存中一块称为桌面堆的区域中分配内存。
桌面堆被分配给了每一个登录的会话,在 Windows 10 以上的操作系统通常一个非交互的会话将会分配给768KB。每个交互登录会话将会分配给20MB的桌面堆,每个postgres进程典型的桌面堆消耗是3.2KB。
- 当作为Windows服务运行时,因为每个非交互会话将会分配768KBMB的桌面堆,所以大约可以支撑 200-220个连接。
- 当在命令行方式运行时,因为每个交互登录会话将会分配20MB的桌面堆,所以大约可以支撑 5000-6000个连接。

如果想要了解更多这个知识点可以看 微软官方的这个说明:
https://
learn.microsoft.com/zh-
CN/troubleshoot/windows/win32/user32-kernel32-not-initialize
结合上面的知识点,所以我们在Windows环境下配置 PostgreSQL 的最大连接数时,如果采用 Windows 服务模式运行则配置最大连接数为200比较好,如果需要200个以上的并发连接,则最好采用控制台形式启动运行PostgreSQL,同时结合计算机的可以内存去综合考虑一般100个连接数会消耗 1G内存,所以假设我们电脑内存为8G,考虑到系统本身运行需要2G内存,所以这是 PostgreSQL 的最大连接数配置为500 左右即可。

 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 