From: Roman Podoliaka Date: Fri, 19 Dec 2014 10:31:07 +0000 (+0200) Subject: Add index on tenant_id X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=e1cf83534552ca39f8408d531b9f5bd814586ce2;p=openstack-build%2Fneutron-build.git Add index on tenant_id This will greatly speed up SELECTs with filters by tenant_id (e.g. when checking if we are going to exceed the quota value per resource per tenant). Closes-bug: #1419815 Change-Id: Iab80cce701e1f12dbf7a4f60d5ce945c6e7d0e2d --- diff --git a/neutron/db/migration/alembic_migrations/versions/4119216b7365_add_tenant_id_idx.py b/neutron/db/migration/alembic_migrations/versions/4119216b7365_add_tenant_id_idx.py new file mode 100644 index 000000000..72f5f501e --- /dev/null +++ b/neutron/db/migration/alembic_migrations/versions/4119216b7365_add_tenant_id_idx.py @@ -0,0 +1,48 @@ +# Copyright 2015 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. +# + +"""Add index on tenant_id column + +Revision ID: 4119216b7365 +Revises: 28c0ffb8ebbd +Create Date: 2014-12-19 12:21:54.439723 + +""" + +# revision identifiers, used by Alembic. +revision = '4119216b7365' +down_revision = 'bebba223288' + +from alembic import op + +TABLES = ['floatingips', 'networkconnections', 'networkgatewaydevices', + 'networks', 'packetfilters', 'ports', 'qosqueues', 'routers', + 'securitygrouprules', 'securitygroups', 'subnets', 'meteringlabels', + 'arista_provisioned_nets', 'arista_provisioned_tenants', + 'arista_provisioned_vms', 'cisco_hosting_devices', + 'cisco_ml2_apic_contracts', 'ml2_brocadenetworks', + 'ml2_brocadeports'] + + +def upgrade(): + for table in TABLES: + op.create_index(op.f('ix_%s_tenant_id' % table), + table, ['tenant_id'], unique=False) + + +def downgrade(): + for table in TABLES: + op.drop_index(op.f('ix_%s_tenant_id' % table), + table_name=table) diff --git a/neutron/db/migration/alembic_migrations/versions/HEAD b/neutron/db/migration/alembic_migrations/versions/HEAD index 0c8b6ed22..fa3deb739 100644 --- a/neutron/db/migration/alembic_migrations/versions/HEAD +++ b/neutron/db/migration/alembic_migrations/versions/HEAD @@ -1 +1 @@ -bebba223288 +4119216b7365 diff --git a/neutron/db/models_v2.py b/neutron/db/models_v2.py index 12da57118..c05780039 100644 --- a/neutron/db/models_v2.py +++ b/neutron/db/models_v2.py @@ -25,7 +25,7 @@ class HasTenant(object): """Tenant mixin, add to subclasses that have a tenant.""" # NOTE(jkoelker) tenant_id is just a free form string ;( - tenant_id = sa.Column(sa.String(255)) + tenant_id = sa.Column(sa.String(255), index=True) class HasId(object):