gpt4 book ai didi

python - 为数百万数据运行选择查询的有效方法

转载 作者:行者123 更新时间:2023-11-29 12:22:49 26 4
gpt4 key购买 nike

我想运行各种选择查询 1 亿次,我有大约。表中有 100 万行。因此,我正在寻找运行所有这些选择查询的最快方法。

到目前为止,我已经尝试了三种不同的方法,结果都差不多。

下面的三种方法当然没有做任何有用的事情,纯粹是为了比较性能。

第一种方法:

for i in range (100000000):
cur.execute("select id from testTable where name = 'aaa';")

第二种方法:

cur.execute("""PREPARE selectPlan  AS
SELECT id FROM testTable WHERE name = 'aaa' ;""")

for i in range (10000000):
cur.execute("""EXECUTE selectPlan ;""")

第三种方法:

def _data(n):
cur = conn.cursor()
for i in range (n):
yield (i, 'test')

sql = """SELECT id FROM testTable WHERE name = 'aaa' ;"""
cur.executemany(sql, _data(10000000))



And the table is created like this:

cur.execute("""CREATE TABLE testTable ( id int, name varchar(1000) );""")
cur.execute("""CREATE INDEX indx_testTable ON testTable(name)""")

我认为使用准备好的语句功能确实可以加快查询速度,但由于这似乎不会发生,所以我认为您可以给我一些其他方法的提示。

最佳答案

这种基准不太可能产生任何有用的数据,但第二种方法应该是最快的,因为一旦语句准备好,它就会被数据库服务器存储在内存中。重复查询的进一步调用不需要传输查询文本,因此节省了一点时间。

这可能没有实际意义,因为查询非常小(可能与重复发送查询文本时通过网络传输的数据包数量相同),并且查询缓存将为每个请求提供相同的数据。

关于python - 为数百万数据运行选择查询的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5595071/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com