Orm N Plus One Query (ARCH5079)
Dieser Inhalt ist noch nicht in deiner Sprache verfügbar.
Key go.performance.orm-n-plus-one · Severity warning · Category performance
Looping over a query result and fetching related data with a separate query per row (N+1) floods the database with round-trips. Eager-load the relationship with Preload.
Incorrect
Section titled “Incorrect”func loadOrders(db *gorm.DB) []Order { var orders []Order db.Find(&orders) for i := range orders { db.Where("order_id = ?", orders[i].ID).Find(&orders[i].Items) } return orders}Correct
Section titled “Correct”func loadOrders(db *gorm.DB) []Order { var orders []Order db.Preload("Items").Find(&orders) return orders}Eager-load related data with Preload instead of querying it per row in a loop.