查询MYSQL页签的最有效方法

2024-09-27 00:18:40 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个表,将来它将包含数千行。你知道吗

这些行包含我需要返回的日期和其他数据。你知道吗

我将有一个日期数组,我需要查询原始表返回适当的数据。你知道吗

目前,我有一个设置,以便将整个原始表复制到一个数组中,然后针对每个日期,使用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)”中的每一个,它都将查询列表数组中具有相应日期的表。然后从返回的单个行中获取数据。你知道吗

如果这是一个明显的问题的话。你知道吗


Tags: 数据方法in列表forifrange数组
2条回答

这不是一个好的解决办法。你知道吗

您应该尝试在一次网络往返中返回所有数据,而不是在列表中为每个日期返回一个数据。你知道吗

你不能说它在内存中代表了多少数据。您需要注意“将整个表复制到一个数组中”。你知道吗

查询的效率取决于解释计划、表上的索引以及需要多少网络往返才能将其带回。你知道吗

假设表上有适当的索引,使用查询检索所需数据会更快。当前实现是一个O(n^2)操作。在服务器上使用适当的索引,它将是O(log n)O(n log n)(我不完全确定我是否理解OP循环中显示的逻辑)。除了使用索引的效率外,这还意味着从服务器传输到客户机应用程序的数据将更少。你知道吗

相关问题 更多 >

    热门问题