是这样(在windows xp sp2下),我现在使用postgreSQL的免安装版本:postgresql-8.2.9-1-binaries-no-installer.zip
(之前我使用的是数据库的安装版本)
我程序(是应用程序跟网络没有关系,都是本地连接)本来连接时间大概1-3秒左右。现在使用免安装花了我好几分钟。甚至直接死掉。
免安装版我使用initdb.exe -D ..\data -E UTF8 --locale=C初始化数据库的。
我使用了一些可能的解决办法但是都不行:
因为是免安装,所以我觉得可能是配置文件设置什么缓存或者什么内存分配方面低了。然后我就去看了文件:postgresql.conf。
然后我找了份安装版的此文件打开对比有这么几处区别:
(发现很多免安装版前面都加个#,是不是说都被注释掉的意思?)
1、(安装)listen_addresses = '*' (免安装)#listen_addresses = 'localhost'
2、(安装)port = 5432(免安装)#port = 5432
3、(安装)log_destination = 'stderr' (免安装)#log_destination = 'stderr'
4、(安装)redirect_stderr = on (免安装)#redirect_stderr = off
5、(安装)log_line_prefix = '%t ' (免安装)#log_line_prefix = ''
6、(安装)stats_start_collector = on (免安装)#stats_start_collector = on
7、(安装)stats_row_level = on (免安装)#stats_row_level = off
8、(安装)autovacuum = on (免安装)#autovacuum = off (垃圾自动回收开不开应该区别不是很大吧?)
9、(安装)datestyle = 'iso, ymd' (免安装)datestyle = 'iso, mdy'
(10,11,12,13只是安装的时候选择的语言吧?应该不会影响吧?)
10、(安装)lc_messages = 'Chinese_People''s Republic of China.936' (免安装)lc_messages = 'C'
11、(安装)lc_monetary = 'Chinese_People''s Republic of China.936' (免安装)lc_monetary = 'C'
12、(安装)lc_numeric = 'Chinese_People''s Republic of China.936' (免安装)lc_numeric = 'C'
13、(安装)lc_time = 'Chinese_People''s Republic of China.936' (免安装)lc_time = 'C'
然后发现有区别后,我想把他们都改成跟安装版一样,但是没成功,因为我不知道在命令提示符下该如何去设置这些配置文件的值。
接下来,我就管它什么区别,就将安装版的文件烤了一份,把免安装版的文件给覆盖了。但是很可惜效果一样。仍然很慢。
我的问题是:
请高手们帮忙解决下,该如何让数据库读取速度快起来,只需要跟安装版效果一样就成。如果可以,最好说明下原理。
还有postgresql.conf文件中的值在命令提示符下该如何修改。
(之前我使用的是数据库的安装版本)
我程序(是应用程序跟网络没有关系,都是本地连接)本来连接时间大概1-3秒左右。现在使用免安装花了我好几分钟。甚至直接死掉。
免安装版我使用initdb.exe -D ..\data -E UTF8 --locale=C初始化数据库的。
我使用了一些可能的解决办法但是都不行:
因为是免安装,所以我觉得可能是配置文件设置什么缓存或者什么内存分配方面低了。然后我就去看了文件:postgresql.conf。
然后我找了份安装版的此文件打开对比有这么几处区别:
(发现很多免安装版前面都加个#,是不是说都被注释掉的意思?)
1、(安装)listen_addresses = '*' (免安装)#listen_addresses = 'localhost'
2、(安装)port = 5432(免安装)#port = 5432
3、(安装)log_destination = 'stderr' (免安装)#log_destination = 'stderr'
4、(安装)redirect_stderr = on (免安装)#redirect_stderr = off
5、(安装)log_line_prefix = '%t ' (免安装)#log_line_prefix = ''
6、(安装)stats_start_collector = on (免安装)#stats_start_collector = on
7、(安装)stats_row_level = on (免安装)#stats_row_level = off
8、(安装)autovacuum = on (免安装)#autovacuum = off (垃圾自动回收开不开应该区别不是很大吧?)
9、(安装)datestyle = 'iso, ymd' (免安装)datestyle = 'iso, mdy'
(10,11,12,13只是安装的时候选择的语言吧?应该不会影响吧?)
10、(安装)lc_messages = 'Chinese_People''s Republic of China.936' (免安装)lc_messages = 'C'
11、(安装)lc_monetary = 'Chinese_People''s Republic of China.936' (免安装)lc_monetary = 'C'
12、(安装)lc_numeric = 'Chinese_People''s Republic of China.936' (免安装)lc_numeric = 'C'
13、(安装)lc_time = 'Chinese_People''s Republic of China.936' (免安装)lc_time = 'C'
然后发现有区别后,我想把他们都改成跟安装版一样,但是没成功,因为我不知道在命令提示符下该如何去设置这些配置文件的值。
接下来,我就管它什么区别,就将安装版的文件烤了一份,把免安装版的文件给覆盖了。但是很可惜效果一样。仍然很慢。
我的问题是:
请高手们帮忙解决下,该如何让数据库读取速度快起来,只需要跟安装版效果一样就成。如果可以,最好说明下原理。
还有postgresql.conf文件中的值在命令提示符下该如何修改。
解决方案 »
- sqlyog导入excel表格出错:1017
- 在windows环境下,怎样实现mysql数据库的增量备份?
- mysql数据库,不同服务器(内网)间的不同数据库的联合查询
- mysql 触发器问题,求救啊?
- select case when createDate 是否需要建立索引?
- mysql中如何实现第一次request查询出符合条件的前100条纪录,第二次request查询出符合条件的从101开始的100条纪录
- 小弟从MSSQL来,学习MySQL,给份简明的操作说明可以不?
- mysql+tomcat+windows2000 中文乱码
- 根据某一字段排序,同时让该行跟着该字段改变位置,怎么做?求助
- 阿里云服务器 mysql5.6版本更新报错
- select 可以查询到相应行,可是却不能delete
- 请高手指教!谢谢!
2 是监听端口
3 是日志存放位置
………………
你可以去看www.pgsqldb.org上面有中文帮助文档
对这些参数解释的比较清楚了。
如果允许监听外部连接,还需要修改hba.conf配置文件
或者你写个界面程序来配置参数也是可以的了^_^
是不是机子不重起,它不会主动去调用文件。我查了下,好象里面有张配置table.
那我想问下,命令提示符下是否可以让电脑弹出提示重新启动的框啊?我没进行过windows编程。里面内部不是很懂。
难道还要写个程序。
pg_ctl可以关闭服务
然后重新载入配置文件
pg_ctl reload [-s] [-D datadir]
reload mode simply sends the postgres process a SIGHUP signal, causing it to reread its configuration files (postgresql.conf, pg_hba.conf, etc.). This allows changing of configuration-file options that do not require a complete restart to take effect.
然后再用postgres启动服务
其实我就是想一个安装包。包括的postgre的安装。但是又不能让客户知道安装过程中内部到底是做了什么。
也就是差不多配置什么的都要一次性全部搞定。
好像postgres已经支持nmake
make完以后完成配置文件的替换,或者打包时候就已经是更换好的配置文件
然后调用pg_ctl或者postgres来启动数据库服务好了