苦于写了很多重复代码,想了解一下大家在 Go 的项目里面是怎么用 GORM (或者其他 MySQL 客户端,不限 ORM / Raw SQL )来实现分表读写的?
例如 user_tab_00000000
- user_tab_00000199
,一共 200 张表,按 user_id % 200
来分表。
了解过的方案:
CreateUser()
、GetUserByUserID()
、UpdateUserByUserID()
SELECT * FROM user_tab WHERE user_id = 199
最终会被改写成 SELECT * FROM user_tab_00000199 WHERE user_id = 199
发往 MySQL ;个人感觉方案 2 是个挺好的思路但是 Go 里面好像没有什么特别好用的中间件。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.