Merge pull request #77 from Cerberus98/moar_indices
More optimizations and indexes for #75
This commit is contained in:
@@ -267,7 +267,7 @@ def mac_address_range_find_allocation_counts(context, address=None):
|
||||
sql_func.count(models.MacAddress.address).
|
||||
label("count")).with_lockmode("update")
|
||||
query = query.outerjoin(models.MacAddress)
|
||||
query = query.group_by(models.MacAddressRange)
|
||||
query = query.group_by(models.MacAddressRange.id)
|
||||
query = query.order_by("count DESC")
|
||||
if address:
|
||||
query = query.filter(models.MacAddressRange.last_address >= address)
|
||||
|
||||
@@ -119,14 +119,14 @@ class IPAddress(BASEV2, models.HasId):
|
||||
"""
|
||||
__tablename__ = "quark_ip_addresses"
|
||||
address_readable = sa.Column(sa.String(128), nullable=False)
|
||||
address = sa.Column(custom_types.INET(), nullable=False)
|
||||
address = sa.Column(custom_types.INET(), nullable=False, index=True)
|
||||
subnet_id = sa.Column(sa.String(36),
|
||||
sa.ForeignKey("quark_subnets.id",
|
||||
ondelete="CASCADE"))
|
||||
network_id = sa.Column(sa.String(36),
|
||||
sa.ForeignKey("quark_networks.id",
|
||||
ondelete="CASCADE"))
|
||||
version = sa.Column(sa.Integer())
|
||||
version = sa.Column(sa.Integer(), index=True)
|
||||
allocated_at = sa.Column(sa.DateTime())
|
||||
subnet = orm.relationship("Subnet", lazy="joined")
|
||||
# Need a constant to facilitate the indexed search for new IPs
|
||||
@@ -157,7 +157,7 @@ class IPAddress(BASEV2, models.HasId):
|
||||
return str(ip.ipv4())
|
||||
return str(ip.ipv6())
|
||||
|
||||
deallocated_at = sa.Column(sa.DateTime())
|
||||
deallocated_at = sa.Column(sa.DateTime(), index=True)
|
||||
|
||||
|
||||
class Route(BASEV2, models.HasTenant, models.HasId, IsHazTags):
|
||||
|
||||
@@ -156,7 +156,6 @@ def get_network(context, id, fields=None):
|
||||
(id, context.tenant_id, fields))
|
||||
|
||||
network = db_api.network_find(context, id=id, scope=db_api.ONE)
|
||||
|
||||
if not network:
|
||||
raise exceptions.NetworkNotFound(net_id=id)
|
||||
return v._make_network_dict(network)
|
||||
|
||||
Reference in New Issue
Block a user