SQLite和Python-获取列中所有值的最快方法?

时间:2019-02-21 14:44:18

标签: python sqlite

我正在努力寻找一种在sqlite的列中获取一组值(文本)的快速方法。我当前的数据库大约有600行,因此我认为数据量应该不是主要问题。另一方面,我注意到,如果值的长度较长,则查询将花费更长的时间。

到目前为止,我已经尝试了以下两个选项:

def get_column_values(self, col, table, option):
    if option == 1:
        pos_values = self.cur.execute('SELECT {} FROM {}'.format(col, table)).fetchall() 
        pos_values = list(set([str(x[0]) for x in pos_values]))
    elif option == 2:
        df = pd.read_sql('SELECT {} FROM {}'.format(col, table), self.conn)
        pos_values = list(set(df[col].values.tolist()))
    return pos_values

虽然pd.read_sql选项更快,但仍然需要几秒钟来获得设置。

我还尝试在查询之前创建索引,这样可以更快地进行查询。但是创建索引所花费的时间使该选项仍然比pd.read_sql慢。

您能推荐我一个更好或更快速的方法吗?可能是如何创建数据库的问题吗?

0 个答案:

没有答案