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
This commit is contained in:
Roman Podoliaka 2014-12-19 12:31:07 +02:00 committed by Ann Kamyshnikova
parent 874dd6db8a
commit e1cf835345
3 changed files with 50 additions and 2 deletions

View File

@ -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)

View File

@ -1 +1 @@
bebba223288
4119216b7365

View File

@ -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):