一次从SQLite一次检索时间序列数据的最快方法

时间:2019-06-29 19:16:56

标签: python sqlite

我有8个表,每个表具有约400万行相同的日期时间范围。我正在尝试编写一种方法,可以在for循环中使用该方法从每个表中获取“当前分钟”的数据,对该数据进行处理,然后在下一分钟获取数据,依此类推。 >

我首先尝试过这个:

public class StepDefinition{
  private final Map<String, YourPageObject> pageObjectsIndex;

  @Autowired
  public StepDefinition(List<YourPageObject> yourPageObjects){
    pageObjectsIndex = yourPageObjects.stream().collect(Collectors.toMap(page -> page.getPageHeading().getText().toUpper(), Function.identity());
  }

  @Then("^user is navigated to \"([^\"]*)\"$")
   public void userIsNavigatedTo(final String pageHeading) throws IOException {
     Assert.assertTrue(pageObjectsIndex.get(pageHeading.toUpper()).isLoaded());
   }
}

那太慢了,所以我尝试了这个:

def get_data(self,table_name,time):
    self.c.execute('SELECT * FROM "{}" WHERE time="{}"'.format(table_name,time))
    resp = self.c.fetchall()
    return resp

起初这会更快,但是随着深入表的时间变长。

最终目标是这样的:

def get_data(self,table_name,time):
    self.c.execute('SELECT * FROM "{}"'.format(table_name))
    for row in self.c:
        if row[0] == time:
            return [row[0],row[4],row[8]]

是否有一种方法可以根据我在每个表中查找的时间快速找到该行并将其返回给我,还是我需要找到其他解决方案?

0 个答案:

没有答案