nodejs 和 php 实现的是一个像他的功能,从MySQL里读出读出五行数据。
测试命令:
ab.exe -n10000 -c100 http://127.0.0.1:1337/ > node.log
ab.exe -n10000 -c100 http://127.0.0.1/abTest.php > php.log
Nodejs 的测试结果:
PHP的测试结果:
NodeJs的代码:
var mysql = require('mysql'),
http = require('http');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '',
database : 'collection',
charset : mysql.UTF8_UNICODE_CI,
});
connection.connect();
http.createServer(function (req, res) {
res.writeHead(200, {
'Content-Type' : 'text/plain',
'Hello':'world',
});
connection.query('SELECT `category`,`add_intro`, `source` FROM `tu_duowan_com` LIMIT 5;', function (err, rows, fields) {
if (err) throw err;
res.write('MySQL Result:' + JSON.stringify(rows));
res.end();
});
}).listen(1337, '127.0.0.1');
process.on('exit', function(){
connection.end();
});
console.log('Server running at http://127.0.0.1:1337/');
PHP的测试代码:
$mysqli = new mysqli('localhost', 'root', '', 'collection');
if ($mysqli->connect_error) {
throw new Exception(sprintf('Connect host(localhost) Error: %s.', $mysqli->connect_error));
}
if (!$mysqli->set_charset('utf8')) {
throw new Exception(sprintf("Error loading character set utf8: %s.", $mysqli->error));
}
$result = $mysqli->query('SELECT `category`,`add_intro`, `source` FROM `tu_duowan_com` LIMIT 5;');
if(false === $result){
throw new Exception($mysqli->error);
}
$rtn = $result->fetch_all(MYSQLI_ASSOC);
$result->free();
echo json_encode($rtn);
$mysqli->close();