Optimize AS detail queries and increase PrefixHandler batch size
- Increase PrefixHandler batch size from 20k to 25k (25% increase) - Add missing index on origin_asn for live_routes table - This index significantly speeds up AS detail page queries - Add code to create missing indexes on existing databases
This commit is contained in:
@@ -127,6 +127,16 @@ func (d *Database) Initialize() error {
|
||||
d.logger.Warn("Failed to VACUUM database", "error", err)
|
||||
}
|
||||
|
||||
// Create any missing indexes for existing databases
|
||||
missingIndexes := []string{
|
||||
"CREATE INDEX IF NOT EXISTS idx_live_routes_origin_asn ON live_routes(origin_asn)",
|
||||
}
|
||||
for _, idx := range missingIndexes {
|
||||
if err := d.exec(idx); err != nil {
|
||||
d.logger.Warn("Failed to create index", "index", idx, "error", err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -93,4 +93,6 @@ CREATE INDEX IF NOT EXISTS idx_live_routes_last_updated ON live_routes(last_upda
|
||||
-- Indexes for IPv4 range queries
|
||||
CREATE INDEX IF NOT EXISTS idx_live_routes_ipv4_range ON live_routes(v4_ip_start, v4_ip_end) WHERE ip_version = 4;
|
||||
-- Index to optimize COUNT(DISTINCT prefix) queries
|
||||
CREATE INDEX IF NOT EXISTS idx_live_routes_ip_mask_prefix ON live_routes(ip_version, mask_length, prefix);
|
||||
CREATE INDEX IF NOT EXISTS idx_live_routes_ip_mask_prefix ON live_routes(ip_version, mask_length, prefix);
|
||||
-- Index to optimize AS detail queries
|
||||
CREATE INDEX IF NOT EXISTS idx_live_routes_origin_asn ON live_routes(origin_asn);
|
||||
Reference in New Issue
Block a user