mirror of
https://codeberg.org/rimu/pyfedi
synced 2025-01-23 11:26:56 -08:00
add indexes to speed up db
This commit is contained in:
parent
75f2c8d2ef
commit
612f60f12d
2 changed files with 87 additions and 11 deletions
|
@ -818,16 +818,16 @@ class CommunityBan(db.Model):
|
|||
|
||||
class UserNote(db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
|
||||
target_id = db.Column(db.Integer, db.ForeignKey('user.id'))
|
||||
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), index=True)
|
||||
target_id = db.Column(db.Integer, db.ForeignKey('user.id'), index=True)
|
||||
body = db.Column(db.Text)
|
||||
created_at = db.Column(db.DateTime, default=utcnow)
|
||||
|
||||
|
||||
class UserBlock(db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
blocker_id = db.Column(db.Integer, db.ForeignKey('user.id'))
|
||||
blocked_id = db.Column(db.Integer, db.ForeignKey('user.id'))
|
||||
blocker_id = db.Column(db.Integer, db.ForeignKey('user.id'), index=True)
|
||||
blocked_id = db.Column(db.Integer, db.ForeignKey('user.id'), index=True)
|
||||
created_at = db.Column(db.DateTime, default=utcnow)
|
||||
|
||||
|
||||
|
@ -845,7 +845,7 @@ class Interest(db.Model):
|
|||
class CommunityJoinRequest(db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
|
||||
community_id = db.Column(db.Integer, db.ForeignKey('community.id'))
|
||||
community_id = db.Column(db.Integer, db.ForeignKey('community.id'), index=True)
|
||||
|
||||
|
||||
class UserFollowRequest(db.Model):
|
||||
|
@ -856,9 +856,9 @@ class UserFollowRequest(db.Model):
|
|||
|
||||
class PostVote(db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
|
||||
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), index=True)
|
||||
author_id = db.Column(db.Integer, db.ForeignKey('user.id'))
|
||||
post_id = db.Column(db.Integer, db.ForeignKey('post.id'))
|
||||
post_id = db.Column(db.Integer, db.ForeignKey('post.id'), index=True)
|
||||
effect = db.Column(db.Float, index=True)
|
||||
created_at = db.Column(db.DateTime, default=utcnow)
|
||||
post = db.relationship('Post', foreign_keys=[post_id])
|
||||
|
@ -866,9 +866,9 @@ class PostVote(db.Model):
|
|||
|
||||
class PostReplyVote(db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
user_id = db.Column(db.Integer, db.ForeignKey('user.id')) # who voted
|
||||
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), index=True) # who voted
|
||||
author_id = db.Column(db.Integer, db.ForeignKey('user.id')) # the author of the reply voted on - who's reputation is affected
|
||||
post_reply_id = db.Column(db.Integer, db.ForeignKey('post_reply.id'))
|
||||
post_reply_id = db.Column(db.Integer, db.ForeignKey('post_reply.id'), index=True)
|
||||
effect = db.Column(db.Float)
|
||||
created_at = db.Column(db.DateTime, default=utcnow)
|
||||
|
||||
|
@ -892,7 +892,7 @@ class Filter(db.Model):
|
|||
filter_posts = db.Column(db.Boolean, default=True)
|
||||
filter_replies = db.Column(db.Boolean, default=False)
|
||||
hide_type = db.Column(db.Integer, default=0) # 0 = hide with warning, 1 = hide completely
|
||||
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
|
||||
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), index=True)
|
||||
expire_after = db.Column(db.Date)
|
||||
keywords = db.Column(db.String(500))
|
||||
|
||||
|
@ -919,7 +919,7 @@ class Notification(db.Model):
|
|||
title = db.Column(db.String(50))
|
||||
url = db.Column(db.String(512))
|
||||
read = db.Column(db.Boolean, default=False)
|
||||
user_id = db.Column(db.Integer, db.ForeignKey('user.id')) # who the notification should go to
|
||||
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), index=True) # who the notification should go to
|
||||
author_id = db.Column(db.Integer, db.ForeignKey('user.id')) # the person who caused the notification to happen
|
||||
created_at = db.Column(db.DateTime, default=utcnow)
|
||||
|
||||
|
|
76
migrations/versions/86b6fd708bd0_index_all_the_things.py
Normal file
76
migrations/versions/86b6fd708bd0_index_all_the_things.py
Normal file
|
@ -0,0 +1,76 @@
|
|||
"""index all the things
|
||||
|
||||
Revision ID: 86b6fd708bd0
|
||||
Revises: a4be1b198b0f
|
||||
Create Date: 2024-01-24 21:17:10.102368
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '86b6fd708bd0'
|
||||
down_revision = 'a4be1b198b0f'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
with op.batch_alter_table('community_join_request', schema=None) as batch_op:
|
||||
batch_op.create_index(batch_op.f('ix_community_join_request_community_id'), ['community_id'], unique=False)
|
||||
|
||||
with op.batch_alter_table('filter', schema=None) as batch_op:
|
||||
batch_op.create_index(batch_op.f('ix_filter_user_id'), ['user_id'], unique=False)
|
||||
|
||||
with op.batch_alter_table('notification', schema=None) as batch_op:
|
||||
batch_op.create_index(batch_op.f('ix_notification_user_id'), ['user_id'], unique=False)
|
||||
|
||||
with op.batch_alter_table('post_reply_vote', schema=None) as batch_op:
|
||||
batch_op.create_index(batch_op.f('ix_post_reply_vote_post_reply_id'), ['post_reply_id'], unique=False)
|
||||
batch_op.create_index(batch_op.f('ix_post_reply_vote_user_id'), ['user_id'], unique=False)
|
||||
|
||||
with op.batch_alter_table('post_vote', schema=None) as batch_op:
|
||||
batch_op.create_index(batch_op.f('ix_post_vote_post_id'), ['post_id'], unique=False)
|
||||
batch_op.create_index(batch_op.f('ix_post_vote_user_id'), ['user_id'], unique=False)
|
||||
|
||||
with op.batch_alter_table('user_block', schema=None) as batch_op:
|
||||
batch_op.create_index(batch_op.f('ix_user_block_blocked_id'), ['blocked_id'], unique=False)
|
||||
batch_op.create_index(batch_op.f('ix_user_block_blocker_id'), ['blocker_id'], unique=False)
|
||||
|
||||
with op.batch_alter_table('user_note', schema=None) as batch_op:
|
||||
batch_op.create_index(batch_op.f('ix_user_note_target_id'), ['target_id'], unique=False)
|
||||
batch_op.create_index(batch_op.f('ix_user_note_user_id'), ['user_id'], unique=False)
|
||||
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
with op.batch_alter_table('user_note', schema=None) as batch_op:
|
||||
batch_op.drop_index(batch_op.f('ix_user_note_user_id'))
|
||||
batch_op.drop_index(batch_op.f('ix_user_note_target_id'))
|
||||
|
||||
with op.batch_alter_table('user_block', schema=None) as batch_op:
|
||||
batch_op.drop_index(batch_op.f('ix_user_block_blocker_id'))
|
||||
batch_op.drop_index(batch_op.f('ix_user_block_blocked_id'))
|
||||
|
||||
with op.batch_alter_table('post_vote', schema=None) as batch_op:
|
||||
batch_op.drop_index(batch_op.f('ix_post_vote_user_id'))
|
||||
batch_op.drop_index(batch_op.f('ix_post_vote_post_id'))
|
||||
|
||||
with op.batch_alter_table('post_reply_vote', schema=None) as batch_op:
|
||||
batch_op.drop_index(batch_op.f('ix_post_reply_vote_user_id'))
|
||||
batch_op.drop_index(batch_op.f('ix_post_reply_vote_post_reply_id'))
|
||||
|
||||
with op.batch_alter_table('notification', schema=None) as batch_op:
|
||||
batch_op.drop_index(batch_op.f('ix_notification_user_id'))
|
||||
|
||||
with op.batch_alter_table('filter', schema=None) as batch_op:
|
||||
batch_op.drop_index(batch_op.f('ix_filter_user_id'))
|
||||
|
||||
with op.batch_alter_table('community_join_request', schema=None) as batch_op:
|
||||
batch_op.drop_index(batch_op.f('ix_community_join_request_community_id'))
|
||||
|
||||
# ### end Alembic commands ###
|
Loading…
Reference in a new issue