我有一个查询需要查询多个 id ,我现在采用的是 map(lambda x:sqlite3.execute(param), param)但是觉得好慢好慢,请教一下各位怎么才能解决
|
1
用 in ,一次查询多个 ID 的数据回来存到字典,再用。原则是尽量减少跟数据库之间的交互。
|
|
suueyoungSep 9, 2016
2
懒汉如我, 就找 orm 做了.
|
|
codehzSep 9, 2016
3
sqlite3 的话,一般来说没必要做这个优化。。。。如果觉得有性能问题,先 profile 查查谁最耗时。。。
|
|
poorguySep 9, 2016
4
应该在 SQL 层面优化,你的 param 是怎么写的?查询的 id 是否有规律?
|
|
5
|
|
6
即使你要查这么多次,也可以考虑在一个事务里做,这样可能会快不少
|
|
7
@SlipStupig 还是没搞懂你的需求,感觉两次查询可以实现: 1. 查某商品的 product_price 的 ids , 2. select price from product_price where id in ids
退一步说,楼上用事务的方案也是可行的,总比你不停查询数据库好 |