- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个用 express、knex 和 bookshelf 构建的简单 rest api。
我正在使用 Jmeter 进行一些性能测试,我注意到如果我调用执行以下查询的 API 则没有问题:
public static async fetchById(id: number): Promise<DatasetStats> {
return DatasetStats.where<DatasetStats>({ id }).fetch();
}
DatasetStats 是一个书架模型
但是如果我将 Jmeter 设置为调用以下内容,我会收到一个错误:ER_CON_COUNT_ERROR:一分钟后连接过多:
import * as knex from 'knex';
@injectable()
export class MyRepo {
private knex: knex;
constructor() {this.knex = knex(DatabaseConfig); }
async fetchResourcesList(datasetName: string): Promise<any> {
return this.knex.distinct('resource').from(datasetName);
}
}
问题可能是我为每个请求创建了一个 knex 对象?
最佳答案
是的。如果为每个请求创建新的 knex 实例,则无法控制与 mysql 数据库的并发连接总数。此外,您将无法重新使用 knex 连接池中已经打开的连接,因此在每次查询时打开到数据库的新 TCP 连接效率非常低。此外,如果您在查询后不销毁 knex 实例,连接将保持打开状态,直到一些空闲超时 + 应用程序将泄漏内存。
关于mysql - ER_CON_COUNT_ERROR : Too many connections knex and bookshelf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47469070/
我有一个名为 Connection 的类,如下所示。这只执行选择语句。我有用于插入或更新的非池化连接。 var _mysql = require('mysql'); function Connecti
我目前正在使用 ApacheBench 测试我的 Node 应用程序。我的数据库遇到了一个问题,即ER_CON_COUNT_ERROR:连接过多。 我在 MySQL Node 模块顶部使用了一个简短的
我有一个用 express、knex 和 bookshelf 构建的简单 rest api。 我正在使用 Jmeter 进行一些性能测试,我注意到如果我调用执行以下查询的 API 则没有问题: pub
我是 Node 初学者。以下是我尝试使用 Node mysql 执行的代码,但它一直给我这个错误: error connecting: Error: ER_CON_COUNT_ERROR: Too m
我有大约 20 个 node.js 文件使用以下配置来访问我的数据库: var pool = mysql.createPool({ host: databaseHost, user:
我是一名优秀的程序员,十分优秀!