Skip to content

Commit 8d41ab2

Browse files
Reskovlitongjava
authored andcommitted
[aiohttp] - use fetchmany api (TechEmpower#9865)
1 parent 1ec0300 commit 8d41ab2

File tree

1 file changed

+6
-10
lines changed

1 file changed

+6
-10
lines changed

frameworks/Python/aiohttp/app/views.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -92,15 +92,11 @@ async def multiple_database_queries_raw(request):
9292
"""
9393
num_queries = get_num_queries(request)
9494

95-
ids = [randint(1, 10000) for _ in range(num_queries)]
95+
ids = [(randint(1, 10000), ) for _ in range(num_queries)]
9696

97-
result = []
9897
async with request.app['pg'].acquire() as conn:
99-
for id_ in ids:
100-
result.append({
101-
'id': id_,
102-
'randomNumber': await conn.fetchval(READ_ROW_SQL, id_),
103-
})
98+
rows = await conn.fetchmany(READ_ROW_SQL, ids)
99+
result = [{'id': id_[0], 'randomNumber': row[0]} for id_, row in zip(ids, rows)]
104100
return json_response(result)
105101

106102

@@ -155,13 +151,13 @@ async def updates_raw(request):
155151
num_queries = get_num_queries(request)
156152
update_ids = sample(range(1, 10001), num_queries)
157153
update_ids.sort()
154+
fetch_params = tuple((i, ) for i in update_ids)
158155
updates = tuple(zip(update_ids, sample(range(1, 10001), num_queries)))
159156
worlds = [{'id': row_id, 'randomNumber': number} for row_id, number in updates]
160157

161158
async with request.app['pg'].acquire() as conn:
162-
for id_, _ in updates:
163-
# the result of this is the int previous random number which we don't actually use
164-
await conn.fetchval(READ_ROW_SQL, id_)
159+
# the result of this is the int previous random number which we don't actually use
160+
await conn.executemany(READ_ROW_SQL, fetch_params)
165161
await conn.executemany(WRITE_ROW_SQL, updates)
166162

167163
return json_response(worlds)

0 commit comments

Comments
 (0)