perf: optimize HTTP client, DB queries, and clean up dead code
- Make reqwest::Client a LazyLock singleton instead of per-call allocation - Parallelize 3 independent DB queries in get_index_advisor_report with tokio::join! - Eliminate per-iteration Vec allocation in snapshot FK dependency loop - Hoist try_local_pg_dump() call in SampleData clone mode to avoid double execution - Evict stale schema cache entries on write to prevent unbounded memory growth - Remove unused ValidationReport struct and config_path field - Rename IndexRecommendationType variants to remove redundant suffix
This commit is contained in:
@@ -83,16 +83,6 @@ pub struct ValidationRule {
|
||||
pub error: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct ValidationReport {
|
||||
pub rules: Vec<ValidationRule>,
|
||||
pub total_rules: usize,
|
||||
pub passed: usize,
|
||||
pub failed: usize,
|
||||
pub errors: usize,
|
||||
pub execution_time_ms: u128,
|
||||
}
|
||||
|
||||
// --- Wave 2: Data Generator ---
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
@@ -165,9 +155,12 @@ pub struct SlowQuery {
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum IndexRecommendationType {
|
||||
CreateIndex,
|
||||
DropIndex,
|
||||
ReplaceIndex,
|
||||
#[serde(rename = "create_index")]
|
||||
Create,
|
||||
#[serde(rename = "drop_index")]
|
||||
Drop,
|
||||
#[serde(rename = "replace_index")]
|
||||
Replace,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
|
||||
Reference in New Issue
Block a user