当前位置: > > > > XML 插入性能到 MYSQL
来源:stackoverflow
2024-04-19 21:45:36
0浏览
收藏
大家好,今天本人给大家带来文章《XML 插入性能到 MYSQL》,文中内容主要涉及到,如果你对Golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!
问题内容
我有一些代码可以将记录插入数据库:
该代码应该在数据库中插入 15m 条记录,目前在 aws t2.large 实例上需要 60 小时。我正在寻找使数据库插入速度更快且不重复记录的方法。
你们对我有什么建议吗?
我正在使用 gorm 和 mysql。
// InsertJob will insert job into database, by checking its hash. func InsertJob(job XMLJob, oid int, ResourceID int) (Job, error) { db := globalDBConnection cleanJobDescription := job.Body hashString := GetMD5Hash(job.Title + job.Body + job.Location + job.Zip) JobDescriptionHash := GetMD5Hash(job.Body) empty := sql.NullString{String: "", Valid: true} j := Job{ CurrencyID: 1, //USD //other fields here elided for brevity PrimaryIndustry: sql.NullString{String: job.PrimaryIndustry, Valid: true}, } err := db.Where("hash = ?", hashString).Find(&j).Error if err != nil { if err.Error() != "record not found" { return j, err } err2 := db.Create(&j).Error if err2 != nil { log.Println("Unable to create job:" + err.Error()) return j, err2 } } return j, nil }
解决方案
您可以使用信号量模式来加快速度。
灵感来自于此。
今天关于《XML 插入性能到 MYSQL》的内容介绍就到此结束,如果有什么疑问或者建议,可以在公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!