跳到主要内容
CNode

nodejs下mysql性能测试

社区
Qqingdu发布于 16 年前最后回复 10 年前
15254210

近期对node下的几个mysql操作库做了一下简单的调研
主要是针对这3个module进行
libmysqlclient,mysql-native, mysql


node-libmysqlclient


https://github.com/Sannis/node-mysql-libmysqlclient
基于libmysql的封装, 支持阻塞与非阻塞两种操作方式,目前在query部分功能比较完善,prepare statement方面还是有些bug,实际测试中一直出core


安装


npm install mysql-libmysqlclient


node-mysql


https://github.com/felixge/node-mysql
纯node的实现, 支持prepare statement, 数据的获取支持事件与callback两种方式


安装


npm install mysql


node-mysql-native


https://github.com/sidorares/nodejs-mysql-native


纯node的实现, 内置有简单的连接池支持,支持prepare statement, 数据的获取只支持通过事件方式


安装


npm install mysql-native


测试设计


测试表结构


CREATE TABLE `test10` (
`id` int(10) unsigned NOT NULL DEFAULT '0',
`txt` varchar(500) DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

测试数据


分别生成了含10, 100, 500, 1500行记录的4张表
使用10个并发连接分别对其进行SELECT * FROM table的查询


测试结论


NewImage.jpg


其中数值表示qps值


在结果集较小时node-mysql-native明显胜出
当结果集增大到接近100行时,node-libmysqlclient开始表现出更佳的性能
node-mysql性能与其他两个module差距比较大,如果对性能有一定要求的话,则其基本不可用


测试代码


http://code.google.com/p/cnodejs/source/browse/#svn%2Ftrunk%2Fmysql-benchmark

查看回复

回复 (15)

F
fangker#1410 年前

过来mark下,刚好用到

R
rainr#1313 年前

不知道 大家都是用什么工具测试性能的呢??求推荐

A
altila#1114 年前
/*查询数据*/
client.query(sql).addListener('row',function(results){
	console.dir(results);
	/*HTTP返回*/
	response.writeHead(200,{'Content-Tyep':'text/plain'});
	var data = JSON.stringify(results);
	response.write(data + "\n");
	response.end();
}).addListener('end', function() {
	/*连接关闭*/
	client.close();
});

我用mysql-native查询mysql,console.dir(results)方法可以将我需要的查询结果输出在服务端,但是通过response.write(data + "\n")输出在我访问的页面里的却是第一条数据。 请问用何方法才能在我访问的页面中获得我想要的查询结果呢?求助中

T
truelie#1015 年前

nodejs有oracle的接口吗?

R
rogical#915 年前

node-mysql 应该要配合node-mysql-pool 和node-mysql-cache 使用, 用上连接池,应该效率显著提升

L
longdan#815 年前

这个东东怎么在CYGWIN里面用

P
pengchun#615 年前

我测试了其中两个,貌似都不太靠谱,所以自己写了一个。过两天放出来

A
anonymous#515 年前

选择node-mysql-native了!
另外,发现有很多memcached的nodejs的实现,能否给个建议,选哪一款较好。
谢谢

P
pengchun#416 年前

我看错了,大家忽略我吧....

P
pengchun#316 年前
引用 yixuan同问楼上的问题,还有表格中,num指的是?

num我知道,是表中的数据行数

Y
yixuan#216 年前

同问楼上的问题,还有表格中,num指的是?

P
pengchun#116 年前

表格里的值含义是什么?

参与回复

登录后即可参与回复。登录