nodejs mysql pool 只能插入10条记录或者较少记录
BEGIN;
解决方案:从连接池获取到的Connection,执行完操作后,必须及时关闭!
即:connection.end();
使用后发现console有打印出警告信息,大致意思为 end() 方法已过期,所以应该使用 connection.release() 方法!
测试环境:
1、首先nodejs环境下,安装 node-mysql,注意是“felixge/node-mysql”,不是“node-mysql”
2、我自己创建了一个简单的util,操作数据,代码如下
/**
* 数据库操作
* author: yzChen 2014-5-6 21:58:57
*/
var mysql = require('mysql');
var pool = mysql.createPool({
host: '127.0.0.1',
user: 'root',
password: 'root',
database:'nodejs',
port: 3306
});
exports.execSql = function(sql, fn) {
pool.getConnection(function (err, conn) {
conn.query(sql, function (err1, res1) {
fn(err1, res1);
});
});
}
3、调用时,就是util.execSql('your sql', function(err, res) { // your code })
但是需要注意的是,每次执行sql都是从连接池获取一个Connection!
下面使用测试代码,进行简单的测试:
var sql = 'insert test(name) values(UUID())';
for(var i = 0; i < 15; i++) {
dbUtil.execSql(sql, function(err, res) {
if (err) console.log(err);
console.log("INSERT Return ==> ");
console.log(res);
});
}
执行完后,查看数据库记录,发现只有10条记录。
最终排查各种原因后,结果是因为每次获取Connection后,没有关闭!
只需要在
conn.query(sql, function (err1, res1) {
的后面添加
conn.release(); // 执行完成后,需要及时关闭连接
一行代码即可。
重新测试,查询数据库,共计新增15条记录。
END;
--- --- --- ---> 点击查看更多最新原创博文<--- --- --- ---
技术交流
nodejs mysql pool 只能插入10条记录或者较少记录的更多相关文章
- MySQL使用INSERT插入多条记录
MySQL使用INSERT插入多条记录,应该如何操作呢?下面就为您详细介绍MySQL使用INSERT插入多条记录的实现方法,供您参考. 看到这个标题也许大家会问,这有什么好说的,调用多次INSERT语 ...
- 解决dede搜索页面只能显示10条信息解决方案
解决dede搜索页面只能显示10条信息解决方案,感觉显示的信息太少,这时就要想办法去解决一下.看看有什么好办法来解决一下这个问题. dede搜索页模板中,默认只能显示10条记录. 打开dede搜索页模 ...
- mysql一次插入多条数据
mysql一次插入多条数据: INSERT INTO hk_test(username, passwd) VALUES ('qmf2', 'qmf2'),('qmf3', 'qmf3'),('qmf4 ...
- Mysql 保留最新的10条数据
Mysql每天执行计划,保留最新的10条数据,其余的删除 1.Mysql 保留最新的10条数据 sql语句: DELETE tb FROM tbname AS tb,( SELECT id FROM ...
- mysql中迅速插入百万条测试数据的方法
对比一下,首先是用 mysql 的存储过程弄的: 复制代码代码如下: mysql>delimiter $ mysql>SET AUTOCOMMIT = 0$$ mysql> crea ...
- MySQL往表里插入千条数据 存储过程
工作中遇到的问题,先记录一下,方便以后查看 存在两张表,user表和friend表 user表部分字段,如上图 friend表部分字段,如上图 往friend表插入千条数据,friend表中的user ...
- MySql LAST_INSERT_ID 【插入多条数据时】
LAST_INSERT_ID 自动返回最后一个 INSERT 或 UPDATE 操作为 AUTO_INCREMENT 列设置的第一个发生的值. 参考这里 The ID that was generat ...
- Nodejs mysql pool使用实例
前段时间在写一个版本发布工具,用到express+mysql实现,当站点运行很长一段空白时间后,node进程会自动down掉,提示mysql连接错误,谷歌后发现是mysql自身的特性导致,因此后来改为 ...
- python 往mysql数据库中插入多条记录。
最近想写mysql库,用到insert into语句,如何一次性将多条记录插入库表中呢. MySQLdb提供了两个执行语句的方法:一个是execute(),另一个是executemany() exec ...
随机推荐
- FusionCube 9000 虚拟化之数据库场景(虚拟化超融合基础设施)
1.本场景为fusioncube9000虚拟化场景,带两台dbn节点. 配置清单: 1台cna节点 2台dbn节点,部署数据库操作系统,一般安装oracle数据双机. 2台mcna节点,作为管理节点, ...
- web测试知识点整理
web是如何测试的? 1. 通用功能测试和可用性测试 2. 性能测试和安全性测试 3. 兼容性测试 4. 数据库和稳定性测试等 web功能测试怎么测? 从一下几个方面来进行WEB测试: 1. 链接测试 ...
- 构造器(constructor)是否可被重写(override)?
构造器不能被继承,因此不能被重写,但可以被重载.
- 访问修饰符 public,private,protected,以及不写(默认) 时的区别?
修饰符 当前类 同 包 子 类 其他包 public √ √ √ √ protecte d √ √ √ × default √ √ × × private √ × × × 类的成员不写访问修饰时默认为 ...
- 描述一下 DispatcherServlet 的工作流程 ?
DispatcherServlet 的工作流程可以用一幅图来说明: 1.向服务器发送 HTTP 请求,请求被前端控制器 DispatcherServlet 捕获. 2. DispatcherServl ...
- 学习DNS(二)
DNS出现及演化 网络出现的早期 是使用IP地址通讯的,那时就几台主机通讯.但是随着接入网络主机的增多,这种数字标识的地址非常不便于记忆,UNIX上就出现了建立一个叫做hosts的文件(Linux和w ...
- C语言之基本语句分类(知识点5)
一.C语言基本语句分类 ①数据定义语句 ②赋值语句 ③函数调用语句 ④表达式语句 ⑤流程控制语句 ⑥复合语句(多个大括号的层次) ⑦空语句 二.注意 ①scanf("%d,%d", ...
- Java根路径设置(在获取本地路径时会获取到这个文件夹,,这样就可以专门放配置文件了)
在获取本地路径时会获取到这个文件夹,,这样就可以专门放配置文件了
- STM32 HAL库与标准库的区别_浅谈句柄、MSP函数、Callback函数
最近笔者开始学习STM32的HAL库,由于以前一直用标准库进行开发,于是发现了HAL库几点好玩的地方,在此分享. 1.句柄在STM32的标准库中,假设我们要初始化一个外设(这里以USART为例)我们首 ...
- Thoughtworks Technology Radar #26 技术雷达26期
Thoughtworks Technology Radar #26 Techniques Adopt Four key metrics Google Cloud's DevOps Research a ...