My Node.js Mã là như dưới đâyTại sao MySQL trong Node.js quá chậm?
CODE1: dưới
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(...);
Vấn đề là máy chủ sẽ sụp đổ khi tôi làm mới trang quá nhanh. Tôi nghĩ là vấn đề của mô-đun nút-mysql, nó xử lý truy vấn trong một hàng đợi. Tôi cố gắng tạo một hồ bơi kết nối.
code2: dưới
....
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);
});
....
Nhưng vấn đề vẫn ở đây, tại sao? Làm thế nào tôi có thể sửa lỗi này.
EDIT: Tôi khởi chạy 100 yêu cầu với 100 đồng thời, dự kiến 10 giây. Nhưng phải mất 20 giây. Tại sao? Hồ bơi chỉ hỗ trợ tối đa 5 kết nối?
Truy vấn là gì? Nó có được hỗ trợ bởi các chỉ mục thích hợp không? –
Bạn sẽ cần đăng nhiều hơn mã giả để được trợ giúp về điều này. – JohnnyHK
Mất bao lâu để truy vấn khi bạn chạy nó tại dòng lệnh, thay vì qua nút? –