查询:select id, event_time from events where event_time > 1395797406712 and event_time < 1398389406712 order by event_time asc。
此查询返回~25k行(总大小为500 in )。
当我在Node.js中使用node-mysql驱动程序查询上述查询时,执行时间为3-4秒。(我使用了console.time和console.timeEnd)
当我在mySql中直接查询它时,它说大约需要200 ms。
这一巨大差异的原因是什么,以及如何改进Node.js实现,使其与直接Mysql查询保持一致?
发布于 2014-04-25 23:07:43
结果发现这是亚马逊的后台问题。我们使用的是弹性豆柄,EC2和RDS实例位于同一个区域,但不在相同的可用区域中。一旦我将它们设置为相同的,即us 1a,node.js中的查询大约需要200 us。
发布于 2014-04-25 18:14:44
你在用行流吗?
如果不是,not正在构建一个25k元素对象,其中包含与其相关的所有分配、迭代和赋值。而且它是在javascript (而不是优化得很好的原生代码)中完成的,因为节点-mysql是纯javascript。
行流将允许您每次收集计算所需的信息,就像在大多数其他环境中使用传统的基于游标的MySQL适配器一样。
https://stackoverflow.com/questions/23283036
复制相似问题