55 lines
7.8 KiB
Plaintext
55 lines
7.8 KiB
Plaintext
# Query Performance Analysis - 20251123-092506
|
|
== SELECT * usage (fetch all columns - inefficient) ==
|
|
None found - good practice!
|
|
|
|
== Missing LIMIT on SELECT queries (potential memory issues) ==
|
|
/home/administrator/projects/coppertone.tech/backend/functions/payment-service/main.go:1065: SELECT invoice_id FROM payments
|
|
/home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go:542: err := db.QueryRow("SELECT COUNT(*) FROM users").Scan(&userCount)
|
|
/home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go:666: err := db.QueryRow("SELECT COUNT(*) FROM users").Scan(&userCount)
|
|
/home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go:1469: SELECT id FROM user_roles
|
|
/home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go:1585: SELECT id FROM user_roles
|
|
/home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go:1671: SELECT id FROM user_roles
|
|
/home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go:1753: SELECT id FROM user_roles
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:540: query := `SELECT ` + blogSelectColumns + ` FROM blog_posts WHERE blog_type = $1`
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:708: err := db.QueryRow("SELECT author_id, status FROM blog_posts WHERE slug = $1", slug).Scan(&existingAuthorID, &existingStatus)
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:783: err := db.QueryRow("SELECT author_id, status FROM blog_posts WHERE slug = $1", slug).Scan(&existingAuthorID, &existingStatus)
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:826: err := db.QueryRow("SELECT status FROM blog_posts WHERE slug = $1", slug).Scan(&existingStatus)
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:880: err := db.QueryRow("SELECT status FROM blog_posts WHERE slug = $1", slug).Scan(&existingStatus)
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:914: err := db.QueryRow("SELECT status FROM blog_posts WHERE slug = $1", slug).Scan(&existingStatus)
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:1178: err := db.QueryRow("SELECT author_id, blog_type FROM blog_posts WHERE slug = $1", slug).Scan(&existingAuthorID, &existingBlogType)
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:1251: err := db.QueryRow("SELECT author_id, blog_type FROM blog_posts WHERE slug = $1", slug).Scan(&existingAuthorID, &existingBlogType)
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:1294: query := `SELECT ` + blogSelectColumns + ` FROM blog_posts WHERE blog_type = $1`
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:1342: err := db.QueryRow("SELECT blog_type, status FROM blog_posts WHERE slug = $1", slug).Scan(&existingBlogType, &existingStatus)
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:1408: err := db.QueryRow("SELECT blog_type FROM blog_posts WHERE slug = $1", slug).Scan(&existingBlogType)
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:1443: err := db.QueryRow("SELECT blog_type, verified FROM blog_posts WHERE slug = $1", slug).Scan(&existingBlogType, &existingVerified)
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:1483: err := db.QueryRow("SELECT blog_type, verified FROM blog_posts WHERE slug = $1", slug).Scan(&existingBlogType, &existingVerified)
|
|
|
|
== N+1 Query Pattern (queries in loops) ==
|
|
/home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go-1206- db.QueryRow(`
|
|
/home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go-1371- roleRows, err := db.Query("SELECT role FROM user_roles WHERE user_id = $1", users[i].ID)
|
|
/home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go-1439- err := db.QueryRow(`
|
|
/home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go-1561- err := db.QueryRow(`
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go-212- if _, err := db.Exec(migration); err != nil {
|
|
|
|
== Missing ORDER BY (non-deterministic results) ==
|
|
/home/administrator/projects/coppertone.tech/backend/functions/payment-service/main.go:1065: SELECT invoice_id FROM payments
|
|
/home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go:542: err := db.QueryRow("SELECT COUNT(*) FROM users").Scan(&userCount)
|
|
/home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go:666: err := db.QueryRow("SELECT COUNT(*) FROM users").Scan(&userCount)
|
|
/home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go:1469: SELECT id FROM user_roles
|
|
/home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go:1585: SELECT id FROM user_roles
|
|
/home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go:1671: SELECT id FROM user_roles
|
|
/home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go:1753: SELECT id FROM user_roles
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:540: query := `SELECT ` + blogSelectColumns + ` FROM blog_posts WHERE blog_type = $1`
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:708: err := db.QueryRow("SELECT author_id, status FROM blog_posts WHERE slug = $1", slug).Scan(&existingAuthorID, &existingStatus)
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:783: err := db.QueryRow("SELECT author_id, status FROM blog_posts WHERE slug = $1", slug).Scan(&existingAuthorID, &existingStatus)
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:826: err := db.QueryRow("SELECT status FROM blog_posts WHERE slug = $1", slug).Scan(&existingStatus)
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:880: err := db.QueryRow("SELECT status FROM blog_posts WHERE slug = $1", slug).Scan(&existingStatus)
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:914: err := db.QueryRow("SELECT status FROM blog_posts WHERE slug = $1", slug).Scan(&existingStatus)
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:1178: err := db.QueryRow("SELECT author_id, blog_type FROM blog_posts WHERE slug = $1", slug).Scan(&existingAuthorID, &existingBlogType)
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:1251: err := db.QueryRow("SELECT author_id, blog_type FROM blog_posts WHERE slug = $1", slug).Scan(&existingAuthorID, &existingBlogType)
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:1294: query := `SELECT ` + blogSelectColumns + ` FROM blog_posts WHERE blog_type = $1`
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:1342: err := db.QueryRow("SELECT blog_type, status FROM blog_posts WHERE slug = $1", slug).Scan(&existingBlogType, &existingStatus)
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:1408: err := db.QueryRow("SELECT blog_type FROM blog_posts WHERE slug = $1", slug).Scan(&existingBlogType)
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:1443: err := db.QueryRow("SELECT blog_type, verified FROM blog_posts WHERE slug = $1", slug).Scan(&existingBlogType, &existingVerified)
|
|
/home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:1483: err := db.QueryRow("SELECT blog_type, verified FROM blog_posts WHERE slug = $1", slug).Scan(&existingBlogType, &existingVerified)
|