Day13 MyCat+ShardingJDBC+ES略提

2022-02-02  本文已影响0人  小周爱吃瓜
  1. 为什么要分库分表?

分页查询?

分库分表下的分页查询
比如Limit 3.
查出前2个offset下的所有数据,然后查剩下的.

做分库分表的时候就规划好多少Id对应什么数据范围的DB.

  1. 垂直拆分
    order_detail.

  2. 比如查询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节点.png

ES和MongoDB都是强的团队,有Leader节点在,可以做到自动迁移,但是myCat不能自动做迁移.

列式数据库

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
上一篇下一篇

猜你喜欢

热点阅读