我在ubuntu服务器上安装了postgres 8.4,配备4 GB Ram和Intel E5504 2Ghz
我创建了一个表
create table foo
(
id serial primary key,
fname varchar(30),
lname varchar(30)
)
10 000行的插入第一次约为4秒,而第一次约为1秒 但是选择100 000行总是需要4秒,
select * from foo
这是正常的还是我的配置错了?
可能是因为我的ubuntu遥控带有限制还是类似的东西?答案 0 :(得分:6)
您的表的100000行使用6.4 MBytes(如果它们是Unicode,则为12.4 MBytes)。这相当于64 MBits,在10 MBit / s网络中大约需要6.4秒。因此,可用的网络带宽可能会导致您遇到的4秒延迟。
答案 1 :(得分:4)
使用psql连接到本地数据库:
psql -U username dbname
打开显示时间信息:
dbname=> \timing
Timing is on.
将输出设置为本地临时文件:
dbname=> \o /tmp/foo.txt
从表中选择所有行到临时文件:
dbname=> select * from foo;
Time: 104.442 ms
(在客户端 - 我假设Linux)暂时禁用防火墙:
# service iptables stop
(在客户端上)开始侦听端口10000:
# nc -l 10000 > /dev/null
(在服务器上)使用普通TCP发送文件到客户端:
# time nc client_ip 10000 < /tmp/foo.txt
real 0m0.190s
user 0m0.004s
sys 0m0.078s
(在客户端上)启用防火墙:
# service iptables start