Browse Source

perf: add partial indexes for daily limit queries

- Add idx_keys_daily_limit index on keys(limit_daily_usd, daily_reset_mode)
- Add idx_providers_daily_limit index on providers(limit_daily_usd, daily_reset_mode)
- Use partial indexes (WHERE limit_daily_usd IS NOT NULL) for efficiency
- Benefits: faster queries for records with daily limits, smaller index size
- Supports compound queries filtering by both limit and reset mode
- Addresses code review feedback from PR #161
ding113 3 months ago
parent
commit
2f79d377f5
1 changed files with 12 additions and 0 deletions
  1. 12 0
      drizzle/0023_daily_limit_partial_indexes.sql

+ 12 - 0
drizzle/0023_daily_limit_partial_indexes.sql

@@ -0,0 +1,12 @@
+-- 每日成本限额性能优化 - 部分索引
+-- 为 keys 和 providers 表的每日限额字段添加部分索引,提升查询性能
+
+-- 为 keys 表添加部分索引(仅索引配置了每日限额的记录)
+CREATE INDEX IF NOT EXISTS "idx_keys_daily_limit" 
+ON "keys"("limit_daily_usd", "daily_reset_mode") 
+WHERE "limit_daily_usd" IS NOT NULL;--> statement-breakpoint
+
+-- 为 providers 表添加部分索引(仅索引配置了每日限额的记录)
+CREATE INDEX IF NOT EXISTS "idx_providers_daily_limit" 
+ON "providers"("limit_daily_usd", "daily_reset_mode") 
+WHERE "limit_daily_usd" IS NOT NULL;