用于mysql的Nodejs模块 - 池中的连接未显示在状态

时间:2016-08-14 11:14:54

标签: mysql node.js node-mysql

我想在felixge Node模块中使用mySQL nodeJs连接池 它似乎工作正常,但我不知道如何找到它是否真的有效,如预期的那样。传递给mysql.createPool()的池连接参数是:

  dbConnectionParams = {
                  connectionLimit: 20,
                  host: 'localhost',
                  user:   'jdoe',
                  password:'somepasswd',
                  database: 'myDB'
  };

使用池中连接的所有查询都可以正常工作。但是,当我尝试使用“show processlist”查看实际连接时,我会在任何时间看到大约4到8个连接,而不是20.这些是否也不会列出?还有其他mySQL语句可以看到它们还是在我们真正需要它们之前它们没有打开?如果是这样,有没有办法强制打开它们以便以后,当实际需要连接时,打开它们没有时间丢失?

我已经阅读了文档,其中说明“池中的连接是由懒惰创建的”。我认为汇集的整个想法是为了规避这一点,所以它们不是按需要(懒惰?)打开的,而是预先打开的。

更新:这是输出。在新请求进入时,我试图将它与connectionLimit参数联系起来。

+----+------+-----------------+------+---------+------+-------+------------------+
| Id | User | Host            | db   | Command | Time | State | Info                 |
+----+------+-----------------+-------------+---------+------+-------+------------------+
| 38 | jdoe | localhost:50716 | myDB | Sleep   |  669 |       | NULL             |
| 39 | jdoe | localhost       | myDB | Query   |    0 | NULL  | show processlist |
| 41 | jdoe | localhost:50718 | myDB | Sleep   |    4 |       | NULL             |
| 44 | jdoe | localhost:50721 | myDB | Sleep   |    4 |       | NULL             |
| 45 | jdoe | localhost:50722 | myDB | Sleep   |    4 |       | NULL             |
| 46 | jdoe | localhost:50723 | myDB | Sleep   |    5 |       | NULL             |
| 47 | jdoe | localhost:50724 | myDB | Sleep   |    4 |       | NULL             |
| 48 | jdoe | localhost:50725 | myDB | Sleep   |    4 |       | NULL             |

+ ---- + ------ + ----------------- + ------------- + - ------- + ------ + ------- + ------------------ +

0 个答案:

没有答案