Mysql 在对具有大量记录的表执行复杂的表联接时,如何知道我的SQL查询是否返回了正确的结果?

Mysql 在对具有大量记录的表执行复杂的表联接时,如何知道我的SQL查询是否返回了正确的结果?,mysql,sql,Mysql,Sql,这个问题看似简单,但实际上很难向SQL Server新手解释。 例如,如果我正在执行一个将多个表与多个记录连接起来的查询,并且该查询返回了600条记录。 1.我是否应该分析前2行或前3行的结果,如果它们是正确的,则假设其余结果也是正确的?或者最佳实践是什么 非常感谢 如果您刚刚接触SQL Server,而不是一般的数据库,我想您可以看看执行计划,看看查询树是否与您想象的一样。大多数数据库工具都有查看此执行计划和查询树的选项。这就是测试的目的 使用数据库的副本,构造一些测试数据(可能有几种不同的场

这个问题看似简单,但实际上很难向SQL Server新手解释。 例如,如果我正在执行一个将多个表与多个记录连接起来的查询,并且该查询返回了600条记录。 1.我是否应该分析前2行或前3行的结果,如果它们是正确的,则假设其余结果也是正确的?或者最佳实践是什么


非常感谢

如果您刚刚接触SQL Server,而不是一般的数据库,我想您可以看看执行计划,看看查询树是否与您想象的一样。大多数数据库工具都有查看此执行计划和查询树的选项。

这就是测试的目的

使用数据库的副本,构造一些测试数据(可能有几种不同的场景,取决于复杂性),并根据测试数据计算出查询的预期结果。确保您考虑了所有可能预见到的需求、边缘情况/异常情况等。当然,这是假设您已经预先定义了查询的目的和业务需求(因此您知道一般意义上的“正确”结果是什么)

然后,运行您的查询,看看它是否在所有情况下都产生了您期望的结果


一旦代码通过测试,那么,如果使用足够好的样本数据进行的测试足够彻底,那么您可以确信查询将在相同表中的任何实际数据上生成正确的结果。

我认为执行计划无法告诉您查询的输出是否正确(按照用户的期望)或者不是。它只能告诉您数据库引擎将如何处理查询。确实如此,但我认为这可能有助于查看您的连接是否在您预期的位置:)@Steffen Execution plan是一个很好的指针,但它无助于验证正确的结果。我已经试过了:-)正如阿德森所说