我使用" go-sql-driver / mysql"驱动程序。 我有一个产品表,有一些依赖项。所以我选择产品并获得将在子查询中创建笛卡尔积的依赖项。通常有200个产品限制以获得更好的性能,但在极少数情况下,限制将被删除或提升为3000-5000然后我将得到以下错误:
拨打tcp 127.0.0.1:3306:connectex:Normalerweise darf jede Socketadresse(Protokoll,Netzwerkadresse oder Anschluss)nur jeweils einmal verwendet werden。
基本上意味着:
connectex:仅使用每个Socketaddress一次。
这是从我的代码中删除的,基本上所有的查询函数都是这样构建的:
mysql := this.DBController.Connect()
defer mysql.Close()
.
.
.
for rows.Next() {
err := rows.Scan(&x, &y, &z)
if err != nil {
log.Println("DBFetchMachines: Scan Error")
log.Println(err)
}
product.PurchasePrice = this.priceR.DBFetchPurchasePriceByProductID(product.ID)
product.SellingPrice = this.priceR.DBFetchSellingPriceByProductID(product.ID)
product.DealerContact = this.contactR.DBGetBasicContact(product.DealerContact.ID)
.
.
.
}
当我只查询200-1000行时,没有问题。 这可能是操作系统相关的问题吗?我使用Win10 64Bit作为我的开发机器。
答案 0 :(得分:0)
正如评论中提到的 reticentroot ,我检查了alexedwards.net/blog/organising-database-access一些最佳做法示例。我选择依赖注入,它就像一个魅力。