Add index on trunk_id in the subports model
An index on trunk_id will make queries that return subports from a given trunk_id efficient. When I first approved the trunk and subports model, I thought that having trunk_id in the primary key would be sufficient. However, thinking about it some more, I realize that isn't the case because trunk_id is listed as the second column in the primary key. Think about it like searching a string index for something that matches in the last half of a string. The index doesn't make that efficient. The DB must still search all entries for matches. It is the same with the index on (port_id, trunk_id) that the primary key provides. You need to look through every row to find matching trunk_ids. Hence the addition of an index. Change-Id: I566863fd44aa402230d2eb83e99bc66e7fed8d80 Partially-Implements: blueprint vlan-aware-vms
This commit is contained in:
parent
805e2391f6
commit
6d8d00fea1
|
@ -1 +1 @@
|
|||
30107ab6a3ee
|
||||
0e877ec3cba3
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
# 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.
|
||||
|
||||
"""Add index on trunk_id to subports model """
|
||||
|
||||
revision = '0e877ec3cba3'
|
||||
down_revision = '30107ab6a3ee'
|
||||
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
op.create_index('ix_subports_trunk_id',
|
||||
'subports',
|
||||
['trunk_id'],
|
||||
unique=False)
|
|
@ -56,6 +56,7 @@ class SubPort(model_base.BASEV2):
|
|||
segmentation_id = sa.Column(sa.Integer, nullable=False)
|
||||
|
||||
__table_args__ = (
|
||||
sa.Index('ix_subports_trunk_id', 'trunk_id'),
|
||||
sa.UniqueConstraint(
|
||||
'trunk_id',
|
||||
'segmentation_type',
|
||||
|
|
Loading…
Reference in New Issue