add pg_trgm index on Alias.note to speed up LIKE search

This commit is contained in:
Son Nguyen Kim 2021-08-20 12:14:20 +02:00
parent 0a1f545c12
commit b606d35c11
2 changed files with 35 additions and 0 deletions

View File

@ -1136,6 +1136,10 @@ class Alias(db.Model, ModelMixin):
__table_args__ = (
Index("ix_video___ts_vector__", ts_vector, postgresql_using="gin"),
# index on note column using pg_trgm
Index('note_pg_trgm_index', "note",
postgresql_ops={"note": "gin_trgm_ops"},
postgresql_using='gin'),
)
user = db.relationship(User, foreign_keys=[user_id])

View File

@ -0,0 +1,31 @@
"""empty message
Revision ID: 424808e1fe49
Revises: d4392342465f
Create Date: 2021-08-20 12:11:57.901994
"""
import sqlalchemy_utils
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = '424808e1fe49'
down_revision = 'd4392342465f'
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.execute('CREATE EXTENSION pg_trgm')
op.create_index('note_pg_trgm_index', 'alias', ['note'], unique=False, postgresql_ops={'note': 'gin_trgm_ops'}, postgresql_using='gin')
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_index('note_pg_trgm_index', table_name='alias')
op.execute('DROP EXTENSION pg_trgm')
# ### end Alembic commands ###