##// END OF EJS Templates
Added some DB indexes to optimize queries
marcink -
r2463:b426ecc3 codereview
parent child Browse files
Show More
@@ -428,8 +428,9 b' class User(Base, BaseModel):'
428 class UserEmailMap(Base, BaseModel):
428 class UserEmailMap(Base, BaseModel):
429 __tablename__ = 'user_email_map'
429 __tablename__ = 'user_email_map'
430 __table_args__ = (
430 __table_args__ = (
431 Index('uem_email_idx', 'email'),
431 UniqueConstraint('email'),
432 UniqueConstraint('email'),
432 {'extend_existing': True, 'mysql_engine':'InnoDB',
433 {'extend_existing': True, 'mysql_engine': 'InnoDB',
433 'mysql_charset': 'utf8'}
434 'mysql_charset': 'utf8'}
434 )
435 )
435 __mapper_args__ = {}
436 __mapper_args__ = {}
@@ -438,7 +439,7 b' class UserEmailMap(Base, BaseModel):'
438 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=True, unique=None, default=None)
439 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=True, unique=None, default=None)
439 _email = Column("email", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=False, default=None)
440 _email = Column("email", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=False, default=None)
440
441
441 user = relationship('User')
442 user = relationship('User', lazy='joined')
442
443
443 @validates('_email')
444 @validates('_email')
444 def validate_email(self, key, email):
445 def validate_email(self, key, email):
@@ -976,6 +977,7 b' class RepoGroup(Base, BaseModel):'
976 class Permission(Base, BaseModel):
977 class Permission(Base, BaseModel):
977 __tablename__ = 'permissions'
978 __tablename__ = 'permissions'
978 __table_args__ = (
979 __table_args__ = (
980 Index('p_perm_name_idx', 'permission_name'),
979 {'extend_existing': True, 'mysql_engine': 'InnoDB',
981 {'extend_existing': True, 'mysql_engine': 'InnoDB',
980 'mysql_charset': 'utf8'},
982 'mysql_charset': 'utf8'},
981 )
983 )
@@ -1323,6 +1325,7 b' class CacheInvalidation(Base, BaseModel)'
1323 class ChangesetComment(Base, BaseModel):
1325 class ChangesetComment(Base, BaseModel):
1324 __tablename__ = 'changeset_comments'
1326 __tablename__ = 'changeset_comments'
1325 __table_args__ = (
1327 __table_args__ = (
1328 Index('cc_revision_idx', 'revision'),
1326 {'extend_existing': True, 'mysql_engine': 'InnoDB',
1329 {'extend_existing': True, 'mysql_engine': 'InnoDB',
1327 'mysql_charset': 'utf8'},
1330 'mysql_charset': 'utf8'},
1328 )
1331 )
@@ -1362,6 +1365,8 b' class ChangesetComment(Base, BaseModel):'
1362 class ChangesetStatus(Base, BaseModel):
1365 class ChangesetStatus(Base, BaseModel):
1363 __tablename__ = 'changeset_statuses'
1366 __tablename__ = 'changeset_statuses'
1364 __table_args__ = (
1367 __table_args__ = (
1368 Index('cs_revision_idx', 'revision'),
1369 Index('cs_version_idx', 'version'),
1365 UniqueConstraint('repo_id', 'revision', 'version'),
1370 UniqueConstraint('repo_id', 'revision', 'version'),
1366 {'extend_existing': True, 'mysql_engine': 'InnoDB',
1371 {'extend_existing': True, 'mysql_engine': 'InnoDB',
1367 'mysql_charset': 'utf8'}
1372 'mysql_charset': 'utf8'}
@@ -1458,6 +1463,7 b' class PullRequestReviewers(Base, BaseMod'
1458 class Notification(Base, BaseModel):
1463 class Notification(Base, BaseModel):
1459 __tablename__ = 'notifications'
1464 __tablename__ = 'notifications'
1460 __table_args__ = (
1465 __table_args__ = (
1466 Index('notification_type_idx', 'type'),
1461 {'extend_existing': True, 'mysql_engine': 'InnoDB',
1467 {'extend_existing': True, 'mysql_engine': 'InnoDB',
1462 'mysql_charset': 'utf8'},
1468 'mysql_charset': 'utf8'},
1463 )
1469 )
General Comments 0
You need to be logged in to leave comments. Login now