数据分片其实就是把数据分布到多个数据库实例里,不同的子表来,不管你是想用HashRange,还是 Time_Range这种方式,都能灵活适应。分片的核心是选择shard key,像是整型、时间戳这类。你可以通过两级映射方案,把数据映射到对应的数据库实例和子表,给数据的效率大大加分。对数据库负载均衡有,性能提升也挺的。其实,如果你做过类似的分片系统,应该知道这块儿的挑战其实挺多的,尤其是跨库查询、数据一致性这些问题。所以在选择分片方式和设计时,要好好考虑一下。

如果你正在做类似的项目,可以看看这篇文章,Mycat 数据库中间件详解,它对数据库中间件和分片的实现方式得蛮详细,应该会给你不少启发。