mirror of
https://github.com/immich-app/immich.git
synced 2026-05-18 03:10:24 +03:00
perf(server): optimize people page query (#27346)
Optimize People page query: modified SQL to use index for faster performance
This commit is contained in:
@@ -228,12 +228,12 @@ select
|
|||||||
from
|
from
|
||||||
"asset_face"
|
"asset_face"
|
||||||
left join "asset" on "asset"."id" = "asset_face"."assetId"
|
left join "asset" on "asset"."id" = "asset_face"."assetId"
|
||||||
and "asset_face"."personId" = $1
|
|
||||||
and "asset"."visibility" = 'timeline'
|
and "asset"."visibility" = 'timeline'
|
||||||
and "asset"."deletedAt" is null
|
and "asset"."deletedAt" is null
|
||||||
where
|
where
|
||||||
"asset_face"."deletedAt" is null
|
"asset_face"."deletedAt" is null
|
||||||
and "asset_face"."isVisible" is true
|
and "asset_face"."isVisible" is true
|
||||||
|
and "asset_face"."personId" = $1
|
||||||
|
|
||||||
-- PersonRepository.getNumberOfPeople
|
-- PersonRepository.getNumberOfPeople
|
||||||
select
|
select
|
||||||
|
|||||||
@@ -352,13 +352,13 @@ export class PersonRepository {
|
|||||||
.leftJoin('asset', (join) =>
|
.leftJoin('asset', (join) =>
|
||||||
join
|
join
|
||||||
.onRef('asset.id', '=', 'asset_face.assetId')
|
.onRef('asset.id', '=', 'asset_face.assetId')
|
||||||
.on('asset_face.personId', '=', personId)
|
|
||||||
.on('asset.visibility', '=', sql.lit(AssetVisibility.Timeline))
|
.on('asset.visibility', '=', sql.lit(AssetVisibility.Timeline))
|
||||||
.on('asset.deletedAt', 'is', null),
|
.on('asset.deletedAt', 'is', null),
|
||||||
)
|
)
|
||||||
.select((eb) => eb.fn.count(eb.fn('distinct', ['asset.id'])).as('count'))
|
.select((eb) => eb.fn.count(eb.fn('distinct', ['asset.id'])).as('count'))
|
||||||
.where('asset_face.deletedAt', 'is', null)
|
.where('asset_face.deletedAt', 'is', null)
|
||||||
.where('asset_face.isVisible', 'is', true)
|
.where('asset_face.isVisible', 'is', true)
|
||||||
|
.where('asset_face.personId', '=', personId)
|
||||||
.executeTakeFirst();
|
.executeTakeFirst();
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
Reference in New Issue
Block a user