在Linux環境下使用Go語言進行數據庫操作時,可以通過以下幾個方面來優化性能:
db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname")
if err != nil {
log.Fatal(err)
}
db.SetMaxOpenConns(100) // 設置最大打開連接數
db.SetMaxIdleConns(10) // 設置最大空閑連接數
db.SetConnMaxLifetime(time.Hour) // 設置連接的最大生命周期
stmt, err := db.Prepare("SELECT id, name FROM users WHERE age > ?")
if err != nil {
log.Fatal(err)
}
defer stmt.Close()
rows, err := stmt.Query(25)
if err != nil {
log.Fatal(err)
}
defer rows.Close()
tx, err := db.Begin()
if err != nil {
log.Fatal(err)
}
_, err = tx.Exec("INSERT INTO users (name, age) VALUES (?, ?)", "Alice", 30)
if err != nil {
tx.Rollback()
log.Fatal(err)
}
_, err = tx.Exec("UPDATE users SET age = ? WHERE name = ?", 31, "Bob")
if err != nil {
tx.Rollback()
log.Fatal(err)
}
err = tx.Commit()
if err != nil {
log.Fatal(err)
}
sync.WaitGroup來等待所有goroutine完成。var wg sync.WaitGroup
for i := 0; i < 10; i++ {
wg.Add(1)
go func(i int) {
defer wg.Done()
// 執行數據庫操作
}(i)
}
wg.Wait()
通過以上這些方法,可以在Linux環境下使用Go語言進行高效的數據庫操作。