add indexes to domains and certificates tables to optimize load time
This commit is contained in:
@ -5,41 +5,32 @@
|
||||
:license: Apache, see LICENSE for more details.
|
||||
.. moduleauthor:: Kevin Glisson <kglisson@netflix.com>
|
||||
"""
|
||||
import arrow
|
||||
from datetime import timedelta
|
||||
|
||||
from flask import current_app
|
||||
|
||||
import arrow
|
||||
from cryptography import x509
|
||||
from cryptography.hazmat.primitives.asymmetric import rsa
|
||||
|
||||
from flask import current_app
|
||||
from idna.core import InvalidCodepoint
|
||||
|
||||
from sqlalchemy import event, Integer, ForeignKey, String, PassiveDefault, func, Column, Text, Boolean, Index
|
||||
from sqlalchemy.ext.hybrid import hybrid_property
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy.sql.expression import case, extract
|
||||
from sqlalchemy.ext.hybrid import hybrid_property
|
||||
from sqlalchemy import event, Integer, ForeignKey, String, PassiveDefault, func, Column, Text, Boolean
|
||||
|
||||
from sqlalchemy_utils.types.arrow import ArrowType
|
||||
from werkzeug.utils import cached_property
|
||||
|
||||
from lemur.database import db
|
||||
from lemur.extensions import sentry
|
||||
|
||||
from lemur.utils import Vault
|
||||
from lemur.common import defaults, utils
|
||||
|
||||
from lemur.plugins.base import plugins
|
||||
|
||||
from lemur.extensions import metrics
|
||||
from lemur.constants import SUCCESS_METRIC_STATUS, FAILURE_METRIC_STATUS
|
||||
|
||||
from lemur.database import db
|
||||
from lemur.domains.models import Domain
|
||||
from lemur.extensions import metrics
|
||||
from lemur.extensions import sentry
|
||||
from lemur.models import certificate_associations, certificate_source_associations, \
|
||||
certificate_destination_associations, certificate_notification_associations, \
|
||||
certificate_replacement_associations, roles_certificates, pending_cert_replacement_associations
|
||||
|
||||
from lemur.domains.models import Domain
|
||||
from lemur.plugins.base import plugins
|
||||
from lemur.policies.models import RotationPolicy
|
||||
from lemur.utils import Vault
|
||||
|
||||
|
||||
def get_sequence(name):
|
||||
@ -87,6 +78,7 @@ def get_or_increase_name(name, serial):
|
||||
class Certificate(db.Model):
|
||||
__tablename__ = 'certificates'
|
||||
id = Column(Integer, primary_key=True)
|
||||
ix = Index('ix_certificates_id_desc', id.desc(), postgresql_using='btree', unique=True)
|
||||
external_id = Column(String(128))
|
||||
owner = Column(String(128), nullable=False)
|
||||
name = Column(String(256), unique=True)
|
||||
|
@ -15,7 +15,7 @@ from lemur.database import db
|
||||
class Domain(db.Model):
|
||||
__tablename__ = 'domains'
|
||||
id = Column(Integer, primary_key=True)
|
||||
name = Column(String(256))
|
||||
name = Column(String(256), index=True)
|
||||
sensitive = Column(Boolean, default=False)
|
||||
|
||||
def __repr__(self):
|
||||
|
19
lemur/migrations/versions/c87cb989af04_.py
Normal file
19
lemur/migrations/versions/c87cb989af04_.py
Normal file
@ -0,0 +1,19 @@
|
||||
"""Create an index on the domains table for the domain name
|
||||
Revision ID: c87cb989af04
|
||||
Revises: 9392b9f9a805
|
||||
Create Date: 2018-10-11 09:44:57.099854
|
||||
|
||||
"""
|
||||
|
||||
revision = 'c87cb989af04'
|
||||
down_revision = '9392b9f9a805'
|
||||
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
op.create_index(op.f('ix_domains_name'), 'domains', ['name'], unique=False)
|
||||
|
||||
|
||||
def downgrade():
|
||||
op.drop_index(op.f('ix_domains_name'), table_name='domains')
|
23
lemur/migrations/versions/f2383bf08fbc_.py
Normal file
23
lemur/migrations/versions/f2383bf08fbc_.py
Normal file
@ -0,0 +1,23 @@
|
||||
"""Create index on certificates table for id desc
|
||||
|
||||
|
||||
Revision ID: f2383bf08fbc
|
||||
Revises: c87cb989af04
|
||||
Create Date: 2018-10-11 11:23:31.195471
|
||||
|
||||
"""
|
||||
|
||||
revision = 'f2383bf08fbc'
|
||||
down_revision = 'c87cb989af04'
|
||||
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
op.create_index('ix_certificates_id_desc', 'certificates', [sa.text('id DESC')], unique=True,
|
||||
postgresql_using='btree')
|
||||
|
||||
|
||||
def downgrade():
|
||||
op.drop_index('ix_certificates_id_desc', table_name='certificates')
|
Reference in New Issue
Block a user