我想在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 |
+ ---- + ------ + ----------------- + ------------- + - ------- + ------ + ------- + ------------------ +