Skip to content

Commit 55d5020

Browse files
🐛 Improve db performance when searching files (#5744)
1 parent eb62c89 commit 55d5020

File tree

3 files changed

+50
-2
lines changed

3 files changed

+50
-2
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
"""add indices to file_meta_data and projects tables
2+
3+
Revision ID: b13ca15c7ef8
4+
Revises: 0ed9f6eabeba
5+
Create Date: 2024-04-26 08:11:52.163445+00:00
6+
7+
"""
8+
from alembic import op
9+
10+
# revision identifiers, used by Alembic.
11+
revision = "b13ca15c7ef8"
12+
down_revision = "0ed9f6eabeba"
13+
branch_labels = None
14+
depends_on = None
15+
16+
17+
def upgrade():
18+
# ### commands auto generated by Alembic - please adjust! ###
19+
op.create_index(
20+
op.f("ix_file_meta_data_is_directory"),
21+
"file_meta_data",
22+
["is_directory"],
23+
unique=False,
24+
)
25+
op.create_index(
26+
op.f("ix_file_meta_data_project_id"),
27+
"file_meta_data",
28+
["project_id"],
29+
unique=False,
30+
)
31+
op.create_index(
32+
op.f("ix_file_meta_data_user_id"), "file_meta_data", ["user_id"], unique=False
33+
)
34+
op.create_index(
35+
op.f("ix_projects_prj_owner"), "projects", ["prj_owner"], unique=False
36+
)
37+
# ### end Alembic commands ###
38+
39+
40+
def downgrade():
41+
# ### commands auto generated by Alembic - please adjust! ###
42+
op.drop_index(op.f("ix_projects_prj_owner"), table_name="projects")
43+
op.drop_index(op.f("ix_file_meta_data_user_id"), table_name="file_meta_data")
44+
op.drop_index(op.f("ix_file_meta_data_project_id"), table_name="file_meta_data")
45+
op.drop_index(op.f("ix_file_meta_data_is_directory"), table_name="file_meta_data")
46+
# ### end Alembic commands ###

packages/postgres-database/src/simcore_postgres_database/models/file_meta_data.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
sa.Column("location", sa.String()),
1010
sa.Column("bucket_name", sa.String()),
1111
sa.Column("object_name", sa.String()),
12-
sa.Column("project_id", sa.String()),
12+
sa.Column("project_id", sa.String(), index=True),
1313
sa.Column("node_id", sa.String()),
14-
sa.Column("user_id", sa.String()),
14+
sa.Column("user_id", sa.String(), index=True),
1515
sa.Column("file_id", sa.String(), primary_key=True),
1616
sa.Column("created_at", sa.String()),
1717
sa.Column("last_modified", sa.String()),
@@ -46,6 +46,7 @@
4646
nullable=False,
4747
server_default=sa.text("false"),
4848
doc="Set True when file_id is a directory",
49+
index=True,
4950
),
5051
sa.Column(
5152
"sha256_checksum",

packages/postgres-database/src/simcore_postgres_database/models/projects.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ class ProjectType(enum.Enum):
6969
),
7070
nullable=True,
7171
doc="Project's owner",
72+
index=True,
7273
),
7374
sa.Column(
7475
"creation_date",

0 commit comments

Comments
 (0)