所以我有一个表,它将来将包含数千行。
这些行包含我需要返回的日期和其他数据。
我将有一个日期数组,我需要用它来查询原始表以返回适当的数据。
目前我有一个设置,以便将整个原始表复制到一个数组中,然后对于每个日期,我使用 for 循环来复制所有数据。
for un in range(0,listc)
for i in range(0,bigtablec)
if list[un] == bigtable[i][1]
a[un] = bigtable[i][2]
以上是其当前工作原理的示例。
我的问题是在bigtable上使用多个SELECT查询是否会比上面的方法更快。
因此,对于每个“for un in range(0,listc)”,它将查询列表数组中相应日期的表。然后从返回的单个行中获取数据。
如果这是一个显而易见的问题,我深表歉意。
最佳答案
这不是一个好的解决方案。
您应该尝试在一次网络往返中将所有数据带回,而不是在列表中为每个日期保留一个数据。
你没有说这在内存中代表了多少数据。您需要小心“将整个表复制到数组中”。
查询的效率是 EXPLAIN PLAN、表上的索引以及需要多少次网络往返才能将其带回的组合。
关于python - 查询MYSQL表最有效的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18196691/