视频地址https://www.bilibili.com/video/BV1LK411s7RX?p=6
分库、分表的水平切分、垂直切分
Sharding-JDBC
Sharding-JDBC不是做分库分表,主要做两个功能:数据分片和读写分离
是轻量级的java框架,是增强型版的JDBC驱动。主要目的是简化分库分表之后对数据的的相关操作
水平分表水平分库例子
垂直分库例子
公共表
读写分离概念
主从复制,从监控主的binlog日志
sharding-jdbc读写分离则是根据SQL语义的分析,将读操作和写操作分别路由至主库与从库。它提供透明化读写分离,让使用方尽量像使用一个数据库一样使用主从数据库集群。(主从复制是由MySql服务器完成的)
MySQL主从配置
Sharding-Proxy
代理多个数据库,可以配置分片逻辑,还可以根据分片规则自动创建表,对于应用程序来说,就像一个数据库一样,可以按照操作数据库一样操作它。
有了Sharding-JDBC,为什么还要Proxy?因为这样就不用在应用程序中配置分片策略,任何连接到proxy的应用程序都使用了分片策略,并且要改变策略只需要更改proxy,不用改应用程序。
对外部是透明的,但是缺点是容易成为性能瓶颈,且容易产生单点故障
分库分表 读写分离
还有更多的功能没讲到,参考官网https://shardingsphere.apache.org/index_zh.html
hardingsphere.apache.org/index_zh.html