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)
|
segmentation_id = sa.Column(sa.Integer, nullable=False)
|
||||||
|
|
||||||
__table_args__ = (
|
__table_args__ = (
|
||||||
|
sa.Index('ix_subports_trunk_id', 'trunk_id'),
|
||||||
sa.UniqueConstraint(
|
sa.UniqueConstraint(
|
||||||
'trunk_id',
|
'trunk_id',
|
||||||
'segmentation_type',
|
'segmentation_type',
|
||||||
|
|
Loading…
Reference in New Issue