node-mysql连接池

我正在使用node-mysql模块( https://github.com/felixge/node-mysql )或( http://utahjs.com/2010/09/22/nodejs-and-mysql-introduction/ )。

这个API也处理连接池吗?

我的意思是,我调用Client.connect()来查询MySQL并释放连接: Client.end()

这是正确的方式,还是应该在代码中连接/断开一次?

我从这个文档学习: https : //github.com/felixge/node-mysql/blob/master/Readme.md

更新:2013年2月 – 池支持已被添加到node-mysql,请参阅文档

使用内置池的示例:

 var pool = require('mysql').createPool(opts); pool.getConnection(function(err, conn) { conn.query('select 1+1', function(err, res) { conn.release(); }); }); 

Pre 2013解决scheme:

您可以使用节点池或mysql池或使用您自己的简单循环池

 function Pool(num_conns) { this.pool = []; for(var i=0; i < num_conns; ++i) this.pool.push(createConnection()); // your new Client + auth this.last = 0; } Pool.prototype.get = function() { var cli = this.pool[this.last]; this.last++; if (this.last == this.pool.length) // cyclic increment this.last = 0; return cli; } 

现在你可以希望所有的查询callback在1秒内执行:

 var p = new Pool(16); for (var i=0; i < 10; ++i) { p.get().query('select sleep(1)', function() { console.log('ready'); } ); // server blocks for 1 second } 

node-mysql模块现在支持连接池。

参考: https : //github.com/felixge/node-mysql#pooling-connections

我相信相同的节点mysql包提供连接池。 看一看

 var express = require("express"); var mysql = require('mysql'); var app = express(); var pool = mysql.createPool({ connectionLimit : 100, //important host : 'localhost', user : 'root', password : '', database : 'address_book', debug : false }); function handle_database(req,res) { pool.getConnection(function(err,connection){ if (err) { connection.release(); res.json({"code" : 100, "status" : "Error in connection database"}); return; } console.log('connected as id ' + connection.threadId); connection.query("select * from user",function(err,rows){ connection.release(); if(!err) { res.json(rows); } }); connection.on('error', function(err) { res.json({"code" : 100, "status" : "Error in connection database"}); return; }); }); } app.get("/",function(req,res){- handle_database(req,res); }); app.listen(3000); 

阅读完整的案例研究(有和没有池): http : //codeforgeek.com/2015/01/nodejs-mysql-tutorial/