数据水平分表之后如何写查询语句
新手一枚,第一次接触水平分表, 有几个问题想请教一下
现有一张订单表, 想要做按季度做水平分表操作
1.如果遇到订单表记录的检索,比如分页, 如何知道一共需要分多少页, 是需要查找所有季度的订单表吗?
2.搜索订单, 是需要在所有订单表执行一遍搜索的 sql 吗?(现在用的是 es,只是想考虑下MySQL 遇到这种场景该怎么写查询语句)
- 获取自己最近的 30 条订单记录, 如果最近的季度只查找到了 20 条,那么是不是需要去上个季度查找 10 条拼接起来?如果上个季度也不够 10 条, 则找上上个季度, 那是否需要一个递归的查询
水平分表之后感觉订单这块的增删改查大部分要重写,有没有对业务改动比较小的方案,用的框架是laravel
弄个mysql代理,会不会简单点?
请问解决了吗 遇到同样的问题
其实可以和产品沟通,不要那么死板,他说什么就是什么。技术方案也要和产品说清楚,例如你分页的那个问题。
@一颗糖 暂时还没有
感谢评论区的各位大神的帮助
我把社区得到的答案都反馈了 用mysql 代理软件, 被运维驳回了, 具体原因我听得不是很懂, 反正就是不让用。
后续又和产品商量更改页面的展示, 以应对分表后数据查询, 产品说需要讨论。 so, 我已经去开发另一个功能了
个人观点
1,让产品配合 按季度筛选, 产品实在不配合 可以按 3 的思路
2,同上一点
3,可以考虑 维护一个 用户最近30个订单的表。 每次直接查这个表拿数据id。 如果数据过大的话可以再分