[Files Refactor] Performance tuning (#2784)

* Improve image query performance
* Tune queries
* Fix db generator
* Don't show release notes in setup
* Further tune indexes
* Log when creating screenshot
This commit is contained in:
WithoutPants
2022-08-01 11:01:29 +10:00
parent abb574205a
commit bc47932343
20 changed files with 810 additions and 354 deletions

View File

@@ -10,6 +10,7 @@ CREATE TABLE `folders` (
);
CREATE INDEX `index_folders_on_parent_folder_id` on `folders` (`parent_folder_id`);
CREATE UNIQUE INDEX `index_folders_on_path_unique` on `folders` (`path`);
-- require reference folders/zip files to be deleted manually first
CREATE TABLE `files` (
@@ -26,12 +27,12 @@ CREATE TABLE `files` (
CHECK (`basename` != '')
);
CREATE UNIQUE INDEX `index_files_zip_basename_unique` ON `files` (`zip_file_id`, `parent_folder_id`, `basename`);
CREATE INDEX `index_files_on_parent_folder_id_basename` on `files` (`parent_folder_id`, `basename`);
CREATE UNIQUE INDEX `index_files_zip_basename_unique` ON `files` (`zip_file_id`, `parent_folder_id`, `basename`) WHERE `zip_file_id` IS NOT NULL;
CREATE UNIQUE INDEX `index_files_on_parent_folder_id_basename_unique` on `files` (`parent_folder_id`, `basename`);
CREATE INDEX `index_files_on_basename` on `files` (`basename`);
ALTER TABLE `folders` ADD COLUMN `zip_file_id` integer REFERENCES `files`(`id`);
CREATE UNIQUE INDEX `index_folders_path_unique` on `folders` (`zip_file_id`, `path`);
CREATE INDEX `index_folders_on_zip_file_id` on `folders` (`zip_file_id`) WHERE `zip_file_id` IS NOT NULL;
CREATE TABLE `files_fingerprints` (
`file_id` integer NOT NULL,
@@ -84,7 +85,7 @@ CREATE TABLE `images_files` (
PRIMARY KEY(`image_id`, `file_id`)
);
CREATE INDEX `index_images_files_file_id` ON `images_files` (`file_id`);
CREATE INDEX `index_images_files_on_file_id` on `images_files` (`file_id`);
CREATE TABLE `galleries_files` (
`gallery_id` integer NOT NULL,