Skip to content

Commit 0d2d383

Browse files
perf: Optimizing paging queries
1 parent 23474a2 commit 0d2d383

File tree

2 files changed

+5
-6
lines changed

2 files changed

+5
-6
lines changed

backend/apps/settings/api/terminology.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
from typing import Optional
2-
from fastapi import APIRouter, Depends, Request
1+
from fastapi import APIRouter
32
from apps.settings.models.setting_models import term_model
4-
# from common.core.db import get_session
53
from common.core.deps import SessionDep
64
from common.core.pagination import Paginator
75
from common.core.schemas import PaginatedResponse, PaginationParams

backend/common/core/pagination.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,13 @@ async def paginate(
3434
if value is not None:
3535
count_stmt = count_stmt.where(getattr(model, field) == value)
3636

37-
total = (await self.session.execute(count_stmt)).scalar_one()
37+
result = self.session.exec(count_stmt)
38+
total = result.first()
3839

3940
stmt = stmt.offset(offset).limit(size)
4041

41-
result = await self.session.execute(stmt)
42-
items = result.scalars().all()
42+
result = self.session.exec(stmt)
43+
items = result.all() # 移除 scalars() 调用,直接使用 all()
4344

4445
return items, total
4546

0 commit comments

Comments
 (0)