我有一个查询以下列格式返回约 100 万行:
data = [[i['field1'], i['field2']] for i in tbl.where(conditions)]
并且需要超过 5 分钟。
当我自己尝试时tbl.where(conditions)
,查询花费了不到一秒的时间,所以大部分时间似乎都花在了迭代列表理解中的行上。
有没有更快的方法从查询中检索 field1/field2?(我有足够的 RAM 将结果存储在内存中)
我有一个查询以下列格式返回约 100 万行:
data = [[i['field1'], i['field2']] for i in tbl.where(conditions)]
并且需要超过 5 分钟。
当我自己尝试时tbl.where(conditions)
,查询花费了不到一秒的时间,所以大部分时间似乎都花在了迭代列表理解中的行上。
有没有更快的方法从查询中检索 field1/field2?(我有足够的 RAM 将结果存储在内存中)
我对你的“tbl”一无所知,但这里有一些我会看的东西:
print tbl.filters.complevel
print tbl.indexedcolpathnames
idx = tbl.get_where_list(conditions)
,tbl[:]['field1'][idx]
h5file = tables.open_file('myfile.h5', driver="H5FD_CORE")
tbl = h5file.root.tbl
看看是否有帮助。