perf: Optimizing paging queries

This commit is contained in:
fit2cloud-chenyw
2025-04-25 18:12:08 +08:00
parent 23474a2422
commit 0d2d38327e
2 changed files with 5 additions and 6 deletions
+1 -3
View File
@@ -1,7 +1,5 @@
from typing import Optional
from fastapi import APIRouter, Depends, Request
from fastapi import APIRouter
from apps.settings.models.setting_models import term_model
# from common.core.db import get_session
from common.core.deps import SessionDep
from common.core.pagination import Paginator
from common.core.schemas import PaginatedResponse, PaginationParams
+4 -3
View File
@@ -34,12 +34,13 @@ class Paginator:
if value is not None:
count_stmt = count_stmt.where(getattr(model, field) == value)
total = (await self.session.execute(count_stmt)).scalar_one()
result = self.session.exec(count_stmt)
total = result.first()
stmt = stmt.offset(offset).limit(size)
result = await self.session.execute(stmt)
items = result.scalars().all()
result = self.session.exec(stmt)
items = result.all() # 移除 scalars() 调用,直接使用 all()
return items, total