【问题标题】:Fastest way to add data: MySQL or JavaScript?添加数据的最快方法:MySQL 还是 JavaScript?
【发布时间】:2018-02-20 19:33:52
【问题描述】:

我的目标是尽可能快地获取数据总和,无论是在 MySQL 查询中完成,还是在获取数据后在 JavaScript 中处理它时完成。这是我的查询:

SELECT COUNT(*) total,
    SUM(ICCID1State = '14' AND ICCID1Carrier = '0' OR ICCID2State = '14' AND ICCID2Carrier = '0') 'AT&T Activated',
    SUM(ICCID1State = '15' AND ICCID1Carrier = '0' OR ICCID2State = '15' AND ICCID2Carrier = '0') 'AT&T Not Activated',
    SUM(ICCID1Carrier = 0 OR ICCID2Carrier = 0) 'AT&T Total',
    SUM(ICCID1State = '14' AND ICCID1Carrier = '1' OR ICCID2State = '14' AND ICCID2Carrier = '1') 'Verizon Activated',
    SUM(ICCID1State = '15' AND ICCID1Carrier = '1' OR ICCID2State = '15' AND ICCID2Carrier = '1') 'Verizon Not Activated',
    SUM(ICCID1Carrier = 1 OR ICCID2Carrier = 1) 'Verizon Total'
FROM myTable
WHERE DealerKey = ?

这会比获取所有数据然后使用 JavaScript 添加更快吗?

【问题讨论】:

  • @Sirmyself 可以!谢谢!
  • @Sirmyself 所以我研究了这些,但他们都没有谈论速度。我当前的查询效果很好,我只是不确定它是否是最快/最好的方法。谢谢!
  • 如果可以的话,你通常应该更喜欢用 SQL 做事。
  • @joshbang 他们不谈论速度,他们只是展示如何做你真正想做的事情

标签: javascript mysql sql


【解决方案1】:

对于这种类型的东西,数据库操作几乎总是会更快。关系数据库就是为此而设计的,引擎非常非常快。对于顶级语言(JavaScript,任何其他语言......),您必须首先获取所有数据,然后“手动”计算。

在 SQL 中搜索“基于集合”与“基于游标”(或“RBAR”——逐行列)处理(选择你的数据库引擎:MySQL、MariaDB、PostgreSQL、MSSQL——没关系,所有的操作原理都是一样的)。

当您使用更高级别的编程语言时,您实质上是在使用基于光标的/RBAR 处理。

始终了解您要求应用程序组件为您做什么,当您了解这一点时,您可以就哪个更好做出合理的决定。

【讨论】:

  • 我现在就去查一下!谢谢!!我喜欢学习新东西,我以前从未听说过“基于集合”或“基于光标”!
  • RBAR 可能会更容易找到,而且 RBAR 与基于游标的操作基本相同。无论如何,足够接近你需要的东西......“为什么 RBAR 对性能不利”或其他东西......
  • 帮助很大。非常感谢!
猜你喜欢
  • 2015-05-07
  • 2016-12-20
  • 2014-08-31
  • 2018-01-05
  • 2018-12-28
  • 1970-01-01
  • 2010-10-13
  • 2011-06-16
  • 1970-01-01
相关资源
最近更新 更多