|
|
1
6
这些查询通常是通过一个套接字进行的,因此执行200个查询而不是1个查询代表了大量的开销,而且RDBMS经过优化以获取一个查询的大量行。 200个查询而不是1个查询将使RDBMS初始化数据集、解析查询、获取一行、填充数据集,并将结果发送200次而不是1次。 最好只执行一个查询。 |
|
|
2
1
我认为这两者之间的差异将是非常显著的,因为(我猜)在解析和执行查询、打包数据以发送回等方面会有很多开销,您将为每一行而不是一次这样做。 通常,编写一个快速测试来测试各种方法的时间,然后您就可以比较有意义的统计数据。 |
|
|
3
1
如果你说的是一些固定数量的查询
但是,如果您谈论的是一些恒定数量的查询
|
|
|
4
0
通常,您希望最小化对数据库的调用次数。您已经可以假定mysql是为了检索行而优化的,但是您不能确定您的调用是优化的(如果有的话)。 |
|
|
5
0
非常重要,通常一次获取所有行与获取一行花费的时间相同。所以让我们假设时间是1秒(非常高,但很好地用于说明),那么获得所有行将需要1秒,获得每行将需要200秒(每行1秒)一个非常显著的差异。这不算你从哪里得到200人的名单。 |
|
|
6
0
尽管如此,你只有200行,所以在实践中这并不重要。 但是,还是要一次把它们都拿出来。 |
|
|
7
0
正如其他人所说。你的RDBMS不会一下子就向你扔200+在一个关联数组中获取所有行对脚本也没有多大影响,因为毫无疑问,您已经有了一个循环来获取每个单独的行。 你所需要做的就是修改这个循环来迭代你得到的数组[非常小的调整!] |
|
|
8
0
唯一一次我发现从多个查询而不是一个大的集合中得到更少的结果更好的是,如果要对结果进行大量处理的话。我通过打破结果集,从结果集(加上相关处理)中删除了大约40000条记录。您可以在查询中构建任何允许DB进行处理并减少结果集大小的内容都是一个好处,但是如果您真正需要所有行,只需获取它们即可。 |