我有这段代码:
var pg = require('pg');
var QueryStream = require('pg-query-stream');
var constr = 'postgres://devel:1234@127.0.0.1/tcc';
var JSONStream = require('JSONStream');
var http = require('http');
pg.connect(constr, function(err, client, done) {
if (err) {
console.log('Erro ao conectar cliente.', err);
process.exit(1);
}
sql = 'SELECT \
pessoa.cod, \
pessoa.nome, \
pessoa.nasc, \
cidade.nome AS cidade \
FROM pessoa, cidade \
WHERE cidade.cod IN (1, 2, 3);';
http.createServer(function (req, resp) {
resp.writeHead(200, { 'Content-Type': 'text/html; Charset=UTF-8' });
var query = new QueryStream(sql);
var stream = client.query(query);
//stream.on('data', console.log);
stream.on('end', function() {
//done();
resp.end()
});
stream.pipe(JSONStream.stringify()).pipe(resp);
}).listen(8080, 'localhost');
});
当我在其中运行apache bench时,它只能每秒处理大约四个请求。如果我在php / apache或java / tomcat中运行相同的查询,则结果会快十倍。数据库有1000行。如果我将查询限制为大约十行,则node比php / java快两倍。
我做错了什么?
编辑:不久前,我在这里打开了一个问题:https://github.com/brianc/node-postgres/issues/653 我提供此链接,因为我在那里发布了我尝试过的其他代码变体。即使到目前为止有评论和提示,我也无法获得像样的速度。