私のNode.jsのコードは なぜNode.jsのMySQLが遅いのですか?
以下CODE1のようなものです:var http=require('http');
var MySQL = require('mysql');
mysql = MySQL.createConnection(...)
http.createServer(function(req, res){
// the query will take several seconds
mysql.query("SELECT SLEEP(1)", function....)
});
http.listen(...);
下回っ問題は、私はあまりにも速くページを更新すると、サーバがクラッシュになりますです。私はノードmysqlモジュールの問題だと思う、それはキュー内のクエリを処理します。私は接続プールを作成しようとします。
CODE2:
....
var pool = require('generic-pool');
var mp = pool.Pool({
...
create: function(cb){
client = MySQL.createConnection(...);
cb(null, client)
},
max: 10, // up to 10 connection
min: 2,
...
});
....
mp.acquire(function(err, mysql){
// the query will take several seconds
mysql.query("SELECT SLEEP(1)", function....)
mp.release(mysql);
});
....
しかし、まだここでの問題以下、なぜ?どうしたらいいですか?
EDIT:100回の同時実行性で100回のリクエストを開始しました.10秒が必要です。しかし、それは20秒かかる。どうして?プールは最大5つの接続のみをサポートしていますか?
質問は何ですか?それは適切なインデックスによって裏付けられていますか? –
これを助けるためには、疑似コード以外のものを投稿する必要があります。 – JohnnyHK
クエリは、ノード経由ではなくコマンドラインで実行するとどれくらいかかりますか? –