package config import ( "log" "time" "gorm.io/driver/postgres" "gorm.io/gorm" "gorm.io/gorm/logger" ) func NewDatabase(cfg *Config) *gorm.DB { db, err := gorm.Open(postgres.Open(cfg.DatabaseURL), &gorm.Config{ Logger: logger.Default.LogMode(logger.Info), }) if err != nil { log.Fatalf("Failed to connect to database: %v", err) } sqlDB, err := db.DB() if err != nil { log.Fatalf("Failed to get database instance: %v", err) } // 连接池配置 (优化: 支持更高并发) sqlDB.SetMaxIdleConns(50) // 空闲连接数 (原 10) sqlDB.SetMaxOpenConns(200) // 最大连接数 (原 100) sqlDB.SetConnMaxLifetime(5 * time.Minute) // 连接最大生命周期 sqlDB.SetConnMaxIdleTime(2 * time.Minute) // 空闲连接最大生命周期 log.Println("Database connected successfully") return db }