Day13 MyCat+ShardingJDBC+ES略提
2022-02-02 本文已影响0人
小周爱吃瓜
- 为什么要分库分表?
分页查询?
分库分表下的分页查询
比如Limit 3.
查出前2个offset下的所有数据,然后查剩下的.
做分库分表的时候就规划好多少Id对应什么数据范围的DB.
-
垂直拆分
order_detail. -
比如查询order和user_detail
select u.remark,u.user_name from userxxx ,remark字段是text类型会导致mysql中的缓存被填充,性能降低.
3.1. 查询该remark字段单独去写sql.
3.2 冗余一份字段.
比如订单和客服,admin_user(100),因为数据量不大,变化很少.
人工操作下也可以,做下冗余就可以了.
我们发现分库分表对于集群的维护不是那么方便,比如分了很多节点,节点之间不知道相互的数据,所以我们引出了ES.
ES节点.pngES和MongoDB都是强的团队,有Leader节点在,可以做到自动迁移,但是myCat不能自动做迁移.
- ONTP(transaction)/ONAP(analyze)
列式数据库
ES.png行和列式数据库,其中会多一份数据,做AP模型.
MyBatis拦截器可以改造statement,底层是对jdbc的封装
MyCat和ShardingJDBC的区别
什么时候用Mycat(mycat是一个服务)
Sharding-JDBC是个jar包形势,问题的关键在于何时抽取一个服务
比如公司前期用的php,之后想转java.或者pho,.net,java共存的场景.
这个时候我们将其做成服务.
MyCat配置的是.xml之类的文件,sharding-jdbc写表达式这些.
Screen Shot 2022-01-30 at 3.41.52 PM.png