Golang使用gorm遇到的问题
2018-05-11 本文已影响0人
米洛丶
开门大吉
这是一门新的语言,很多东西都只是一知半解。想了一下还是建立一下分类吧O(∩_∩)O~
ORM
orm的概念在这里就不赘述了,我的理解是,它将数据库的结构与语言(golang)本身的数据结构对应了起来。例如mysql/postgresql里的VARCHAR,对应到golang的struct中的string类型字段。这样的话就可以在语言里畅玩sql啦~~
背景
每个操作数据库的函数都加了新建连接-->关闭连接的语句,虽然很累赘,但是看上去也很合理。
image.png问题
当操作测试平台的用户多了起来,可能会需要同一时间访问多个接口,每个接口都建立连接,会导致数据库连接过多。导致程序阻塞,形成一个假死的状态。
暂时解决方法
将db.NewDB作为一个变量, 函数每次需要操作数据库时调用这个变量就可以了,这样解决了问题,但是接下来还得找一下原因以及怎么良好封装类似orm。