db: add extra indexes for tag and media_tag

This commit is contained in:
Lucas Gabriel Vuotto 2025-05-03 08:41:23 +00:00
parent b01e4197e7
commit b052526f4e
2 changed files with 15 additions and 7 deletions

View file

@ -1,7 +1,11 @@
DROP VIEW IF EXISTS tagged_media_view;
DROP VIEW IF EXISTS tag_count_view;
DROP TABLE IF EXISTS media_tag;
DROP INDEX IF EXISTS tag_display_idx;
DROP TABLE IF EXISTS tag;
DROP TABLE IF EXISTS kind;
DROP TABLE IF EXISTS media;
DROP VIEW tagged_media_view;
DROP VIEW tag_count_view;
DROP INDEX media_tag_tag_id_idx;
DROP INDEX media_tag_media_id_idx;
DROP TABLE media_tag;
DROP INDEX tag_display_idx;
DROP INDEX tag_name_kind_id_idx;
DROP INDEX tag_name_idx;
DROP TABLE tag;
DROP TABLE kind;
DROP TABLE media;

View file

@ -20,6 +20,8 @@ CREATE TABLE tag(
display TEXT (289) AS (concat_ws(':', kind_id, name)) STORED,
UNIQUE (name, kind_id)
);
CREATE INDEX tag_name_idx ON tag(name);
CREATE UNIQUE INDEX tag_name_kind_id_idx ON tag(name, kind_id);
CREATE UNIQUE INDEX tag_display_idx ON tag(display);
CREATE TABLE media_tag(
@ -29,6 +31,8 @@ CREATE TABLE media_tag(
FOREIGN KEY (tag_id) REFERENCES tag(id) ON DELETE CASCADE,
PRIMARY KEY (media_id, tag_id)
);
CREATE INDEX media_tag_media_id_idx ON media_tag(media_id);
CREATE INDEX media_tag_tag_id_idx ON media_tag(tag_id);
CREATE VIEW tag_count_view AS SELECT
tag.id AS id,