我应该在什么时候使用C++;而不是SQL? 我是一个C++程序员,偶尔会使用MySQL来处理数据库,但是我的SQL知识相当有限。然而,我当然愿意改变这一点
目前,我正试图仅使用SQL查询对数据库中的数据进行分析(!)。但是我即将放弃,而是把数据导入C++,用C++代码进行分析。 <>我和我的同事讨论过,他们也推我使用C++,说SQL不是用于复杂的分析,而是主要用于导入(来自现有表)和导出(到新表)数据,还有一点,例如合并数据到-例如-连接表。 谁能帮我画一条线吗?所以我知道什么时候切换到C++?当然,性能也是一个问题 在SQL中,有哪些迹象表明事情变得复杂了?或者我只是在设计查询时采取了错误的方法。那么我在哪里可以找到教程、书籍。。。采取更好的方法 我希望这不是太含糊。我真的有点迷路了 <>我和我的同事讨论过,他们也推我使用C++,说SQL不是用于复杂的分析,而是主要用于导入(来自现有表)和导出(到新表)数据,还有一点,例如合并数据到-例如-连接表。我应该在什么时候使用C++;而不是SQL? 我是一个C++程序员,偶尔会使用MySQL来处理数据库,但是我的SQL知识相当有限。然而,我当然愿意改变这一点,c++,mysql,sql,data-analysis,C++,Mysql,Sql,Data Analysis,目前,我正试图仅使用SQL查询对数据库中的数据进行分析(!)。但是我即将放弃,而是把数据导入C++,用C++代码进行分析。 我和我的同事讨论过,他们也推我使用C++,说SQL不是用于复杂的分析,而是主要用于导入(来自现有表)和导出(到新表)数据,还有一点,例如合并数据到-例如-连接表。 谁能帮我画一条线吗?所以我知道什么时候切换到C++?当然,性能也是一个问题 在SQL中,有哪些迹象表明事情变得复杂了?或者我只是在设计查询时采取了错误的方法。那么我在哪里可以找到教程、书籍。。。采取更好的方法 我
这完全是武断的。学习SQL。web上有很多免费的资源。SQL通常非常有效地处理自己的数据库(取决于服务器实现) 您应该使用查询来分析数据库。
主要原因是通信开销。
即使服务器在本地机器上(远程服务器将具有明显的通信开销),您仍然需要从SQL服务器检索存储的信息到C++程序进行分析。p> 现在,如果SQL中有100000行,则必须让SQL server读取所有行,并将它们发送到您的程序,在那里它可能会创建数据的本地副本供您使用
如果让SQL server处理查询,您将获得它根据您正在执行的查询类型所做的复杂优化,并且最终您只能通过通信检索有限数量的数据(您实际需要的数据)。您做出了正确的决定,开始使用SQL进行数据分析。现在,当您觉得SQL知识限制了您的能力时,您有两个选择:放弃并切换回熟悉但效率不高的工具集(C++),或者提高SQL水平
有可能在某个时候SQL也会变得太复杂,但是C++也不会是答案-很可能是一些专门的工具。
SQL擅长分析<强>大集合的关系数据< /St>>p> 划定界限的地方是你分析的尺度
如果您一次分析一条记录,请在应用程序中进行分析 如果您将大型记录集作为一个单元进行分析,那么SQL绝对是这项工作的最佳工具逐行分析并不是SQL设计或优化的目标。但是,如果您想知道关于一百万行数据组的一些信息,请在数据库中执行。 在我看来,如果数据库服务器提供的分析功能没有等效的值,则只应在C++中执行分析。由于数据库服务器非常智能,很难也几乎不可能超过数据库服务器分析功能的算法效率。此外,将原始数据带到应用程序以执行分析还包括大量开销
如果在某个时候,普通SQL变得过于复杂,服务器的本机PL可能是一个不错的选择我同意JNK和Jochai,但不同意Ascanio。 最好是提高数据库系统的知识。
Sql随附如果您知道如何使用Sql提供的功能,您可以在Sql中对数据进行非常复杂的分析 SQL具有执行关系操作的功能,如连接和投影。也用于执行集合操作,如并集、交集和限制(子集)。也用于对数字进行基本运算,如四个算术运算符,以及内置函数,如SQRT。还有统计函数,如COUNT、SUM和AVG,它们可以以非常有趣的方式与预测相结合。一个好的DBMS将允许您用C、C++或PL/SQL编写的函数扩展内置函数。p> 您从这些功能中获得的能力取决于数据库设计的好坏。设计良好的数据库符合关系模型,并且应该与数据的预期用途相关 SQL代码可以存储在存储产品的数据库中。它可以存储在SQL脚本文件中。而且,正如您已经知道的,它可以嵌入到应用程序中。除了SQL,您还可以使用OLAP工具和报表生成器非常轻松地对数据执行标准操作
那些建议你保持C++中所有处理的人听起来就像他们已经学会了使用一个像一个大而愚蠢的文件系统那样的数据库。一个好的DBMS远不止这些因此,这是我一直在思考的问题,在我看来,SQL只是一个存储/操作数据的平台/语言,在C++或C库上应该没有固有的优势。在我看来,理论上,你可以像这样做C++一样高效地构建一个C++库,如果不是效率更高的话。这样,您就可以从头开始构建它,了解int、char、string和其他数据类型的存储方式,并使它更易于与特定应用程序(如web开发)进行交互。您甚至可以使用javascript这样的语言进行查询(允许web开发人员只学习一种语言)