在网上看了很多种方案, 始终不太满意, 分库的难点主要在于 查询 , 分页和排序。
比如 人员表,有人员ID,人员名字, 创建时间,部门ID,根据人员ID来分库,问题来了,
1 如果查询条件中有人员名字,该怎么查, 全部数据库查 一次再汇总?
2 有分页, 根据创建时间排序 , 这种情况该如何办?
希望大家能把解决方案说的越详细越好, 这个问题主要是探讨用的。
分库的模式一般要再加一个汇集数据层,将查询任务分派到各个数据库,再将返回值汇总;
分页只能专门建立一个数据库,定期从各数据库抽取数据,按人员ID和创建时间建立索引,从这个库中得到当前页面上的人员ID后,再从汇集数据层中返回页面数据集,虽然会损失一点实时性,但效率可以得到保证!