Create an index for subnetpools.address_scope_id

The method "get_network_address_scope" filters
"Subnetpool" with "address_scope_id" using an
exact match. Making the column indexed will improve
the query performance.

Closes-Bug: #1973726
Change-Id: Ib3f8e18ba28b277d5fa02dd386ca80a5a113c247
This commit is contained in:
yatinkarel 2022-06-01 19:34:25 +05:30
parent f966ed8c15
commit 5957e90575
3 changed files with 37 additions and 2 deletions

View File

@ -1 +1 @@
4e6e655746f6
659cbedf30a1

View File

@ -0,0 +1,35 @@
# Copyright 2022 OpenStack Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
from alembic import op
"""add index to subnetpools address_scope_id
Revision ID: 659cbedf30a1
Revises: 4e6e655746f6
Create Date: 2022-06-01 13:39:35.303265
"""
# revision identifiers, used by Alembic.
revision = '659cbedf30a1'
down_revision = '4e6e655746f6'
def upgrade():
index_name = 'ix_subnetpools_address_scope_id'
op.create_index(index_name, 'subnetpools', ['address_scope_id'],
unique=False)

View File

@ -275,7 +275,7 @@ class SubnetPool(standard_attr.HasStandardAttributes, model_base.BASEV2,
server_default=sql.false())
default_quota = sa.Column(sa.Integer, nullable=True)
hash = sa.Column(sa.String(36), nullable=False, server_default='')
address_scope_id = sa.Column(sa.String(36), nullable=True)
address_scope_id = sa.Column(sa.String(36), nullable=True, index=True)
prefixes = orm.relationship(SubnetPoolPrefix,
backref='subnetpools',
cascade='all, delete, delete-orphan',