node.js – 我锤击我的数据库?

我是节点的新手,已经编写了一个可以在开发环境中工作的程序,但是我担心它的生产性能。

在下面的代码中,我使用我自己的mysqlAsync.queryEach方法(让我知道如果你想我分享)。 它使用通用池,MySQL和asynchronous库。

我已经使用通用池共享多达10个MySQL连接。

mysqlAsync.queryEach方法使用文档中的async.forEach方法执行以下操作。

并行地将迭代器函数应用于数组中的每个项目。

function doSomethingWithExercises(callback) { mysqlAsync.queryEach("SELECT * FROM subjects ORDER BY id", function(subject, done) { mysqlAsync.queryEach("SELECT * FROM exercises WHERE id = ? ORDER BY id",[subject.id] function(exercise, done) { //do something with the exercises }, //then... function() { done() }); }, //then... function() { //done callback() }); } 

因此,第一次调用queryEach发出另一个x调用另一个queryEach。 它可以同时发出1000个同时查询。

在我的具体使用情况中,这个过程被用来构build一个rediscaching,而不是每个连接都不经常发生。

我想知道如果我宁愿在节点上同步处理查询?

我应该扼杀我的疑问?

mysql可以同时处理多less个查询?

人们通常会做一切asynchronous工作来获得最好的节点,或者你需要抑制某些资源吗?

对不起,如果这个问题是广泛的,我只是想让我的头多远采取这种asynchronous的东西。

mysql可以同时处理多less个查询?

32 – 64.这是实际的限制,你应该做很多的优化,才能达到这个水平。 Mysql可以处理更多,但性能将开始下降而不是增加。

select*从练习WHERE ID =? ORDER BY ID

这是离奇的。 WHERE id =? ORDER BY ID? 你真的是这个意思吗?

我想你应该join你的表,并从MySQL获取所有的数据,然后开始处理它。 数据库很容易成为一个瓶颈,所以你应该尽可能的使用它。

我甚至不确定你需要在NodeJS中并行执行。 尝试向数据库中添加数据(如预期的那样),并尝试运行查询并测量性能。