AOSSIE-Org / AOSSIE-Org/PictoPy
perf: avoid full table scan in toggle-favourite endpoint
- 主要语言
- Python
- 星标
- 283
- 派生
- 679
- 平均合并
- 7 天 2 小时
- 30 天内合并 PR
- 3
描述
### What happened?
In `backend/app/routes/images.py`, the `/toggle-favourite` endpoint fetches **all images** from the database just to retrieve the updated favourite status of a single image:
```python
image = next(
(img for img in db_get_all_images() if img["id"] == image_id), None
)
```
This is a full table scan on every toggle action. If a user has thousands of images, this is extremely slow and wasteful.
### Why this matters
- Poor performance at scale
- Unnecessary database load on every favourite toggle
- `db_get_all_images()` is an expensive query with JOINs
### Proposed fix
Add a `db_get_image_by_id(image_id)` function to `database/images.py` and use it instead of scanning all images.
### Expected behavior
The endpoint should fetch only the single toggled image using its ID.
I'd like to fix this if maintainers agree.
贡献指南
评估
这个 Issue 还没有评估数据。