[Files Refactor] Performance tuning (#2809)

* Use cache during migration
* Avoid use of query views
* Use FindMany to find related objects
* Log slow queries
* Add folders to generated files
* Use SlimScene for scene queries
* Include filename in migration error message
This commit is contained in:
WithoutPants
2022-08-08 14:24:08 +10:00
parent c825cf5d09
commit 569c3a872a
21 changed files with 417 additions and 157 deletions

View File

@@ -147,7 +147,7 @@ func (r *galleryResolver) Date(ctx context.Context, obj *models.Gallery) (*strin
func (r *galleryResolver) Scenes(ctx context.Context, obj *models.Gallery) (ret []*models.Scene, err error) {
if err := r.withTxn(ctx, func(ctx context.Context) error {
var err error
ret, err = r.repository.Scene.FindByGalleryID(ctx, obj.ID)
ret, err = r.repository.Scene.FindMany(ctx, obj.SceneIDs)
return err
}); err != nil {
return nil, err
@@ -175,7 +175,7 @@ func (r *galleryResolver) Studio(ctx context.Context, obj *models.Gallery) (ret
func (r *galleryResolver) Tags(ctx context.Context, obj *models.Gallery) (ret []*models.Tag, err error) {
if err := r.withTxn(ctx, func(ctx context.Context) error {
var err error
ret, err = r.repository.Tag.FindByGalleryID(ctx, obj.ID)
ret, err = r.repository.Tag.FindMany(ctx, obj.TagIDs)
return err
}); err != nil {
return nil, err
@@ -187,7 +187,7 @@ func (r *galleryResolver) Tags(ctx context.Context, obj *models.Gallery) (ret []
func (r *galleryResolver) Performers(ctx context.Context, obj *models.Gallery) (ret []*models.Performer, err error) {
if err := r.withTxn(ctx, func(ctx context.Context) error {
var err error
ret, err = r.repository.Performer.FindByGalleryID(ctx, obj.ID)
ret, err = r.repository.Performer.FindMany(ctx, obj.PerformerIDs)
return err
}); err != nil {
return nil, err