[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

@@ -19,7 +19,7 @@ import {
import Icon from "src/components/Shared/Icon";
import { useToast } from "src/hooks";
import SceneQueue from "src/models/sceneQueue";
import SceneQueue, { QueuedScene } from "src/models/sceneQueue";
import { ListFilterModel } from "src/models/list-filter/filter";
import Mousetrap from "mousetrap";
import { OCounterButton } from "./OCounterButton";
@@ -56,7 +56,7 @@ interface IProps {
scene: GQL.SceneDataFragment;
refetch: () => void;
setTimestamp: (num: number) => void;
queueScenes: GQL.SceneDataFragment[];
queueScenes: QueuedScene[];
onQueueNext: () => void;
onQueuePrevious: () => void;
onQueueRandom: () => void;
@@ -519,7 +519,7 @@ const SceneLoader: React.FC = () => {
() => SceneQueue.fromQueryParameters(location.search),
[location.search]
);
const [queueScenes, setQueueScenes] = useState<GQL.SceneDataFragment[]>([]);
const [queueScenes, setQueueScenes] = useState<QueuedScene[]>([]);
const [queueTotal, setQueueTotal] = useState(0);
const [queueStart, setQueueStart] = useState(1);
@@ -592,7 +592,7 @@ const SceneLoader: React.FC = () => {
const { scenes } = query.data.findScenes;
// prepend scenes to scene list
const newScenes = scenes.concat(queueScenes);
const newScenes = (scenes as QueuedScene[]).concat(queueScenes);
setQueueScenes(newScenes);
setQueueStart(newStart);
}
@@ -613,7 +613,7 @@ const SceneLoader: React.FC = () => {
const { scenes } = query.data.findScenes;
// append scenes to scene list
const newScenes = scenes.concat(queueScenes);
const newScenes = (scenes as QueuedScene[]).concat(queueScenes);
setQueueScenes(newScenes);
// don't change queue start
}