https://blog.youkuaiyun.com/github_26672553/article/details/100047058
之前我们把select * from users硬生生的替换成了select * from (select * from user1 union select * from user2) as t
很low,但如果你的分表需求和业务是在过于简单,也是可以的。。。
func (this MyHandler) HandleQuery(query string) (*mysql.Result, error) {
res1, err := this.conn.Execute("select * from user1")
if err != nil {
return nil, fmt.Errorf("Error:", err)
}
res2, err := this.conn.Execute("select * from user2")
if err != nil {
return nil, fmt.Errorf("Error:", err)
}
res1.RowDatas = append(res1.RowDatas, res2.RowDatas...)
res1.AffectedRows += res2.AffectedRows
return res1, nil
}
以上代码就是数据集合的方式,实现了select * from (select * from user1 union select * from user2) as t查询同样的数据。
本文介绍了一种通过数据集合方式优化分表查询的方法,避免了使用复杂SQL语句如select * from (select * from user1 union select * from user2) as t,通过直接从多个表中获取数据并进行合并,提高了查询效率。
2822

被折叠的 条评论
为什么被折叠?



