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:
parent
6d46bbad5b
commit
c35b76deb8
@ -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);
|
@ -19,7 +19,7 @@ const (
|
||||
prefixHandlerQueueSize = 100000
|
||||
|
||||
// prefixBatchSize is the number of prefix updates to batch together
|
||||
prefixBatchSize = 20000
|
||||
prefixBatchSize = 25000
|
||||
|
||||
// prefixBatchTimeout is the maximum time to wait before flushing a batch
|
||||
// DO NOT reduce this timeout - larger batches are more efficient
|
||||
|
Loading…
Reference in New Issue
Block a user