欢迎关注笔者的公众号:【阿飞的博客】,首发都在这里!!!
什么?你们的测试是小哥哥?那就不要往下看了,让他怎么难怎么来。
建议
根据你的业务特点,单表 > 分区 > 单库分表 > 分库分表,在满足业务前提下,优先级从左到右,不接受任何反驳。嘿嘿
背景
做过分表的(单库分表或者分库分表)都知道,在你没有依赖任何中间件之前,使用Navicat或者其他类似工具操作MySQL,那将是灾难,如下图所示:
sharding table view
如果是类似取模这类简单算法分表还好说,能一眼根据分片键知道分表结,比如根据用户ID对128取模分表,那么用户ID为128的用户数据就在表tb_user_0中。但是如果是采用类似一致性hash算法或者更复杂的分表算法,那么我们首先需要利用程序根据分片键算出分表结果,然后再到Navicat中对该表进行CRUD。开发尚且如此困难,测试小姐姐估计要崩溃了哈。哪里有困难,哪里就有机会。所以,这就是你和测试小姐姐拉近机会、表现自己的时候。
本文要介绍的,能解决这个问题的工具就是sharding-proxy(MyCAT也有类似工具,只是易用性简直就是渣渣),看看部署sharding-proxy后使用Navicat访问MySQL的效果图,开不开森,激不激动: