在系统设计阶段,就要完成垂直分库和垂直分表. 在数据量不断上升,数据库性能无法满足需求的时候, 首先要考虑的是缓存、 读写分离、索引技术等方案.如果数据量不断增加,并且持续增长再考虑水平分库和水平分表
ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成
shardingJDBC:适用于任何基于Java的ORM框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template或直接使用JDBC;基于任何第三方的数据库连接池,如:DBCP, C3P0, Druid等;支持任意实现JDBC规范的数据库。目前支持MySQL,Oracle,SQLServer和PostgreSQL。
使用Sharding-Jdbc前需要人工对数据库进行分库分表,在应用程序中加入Sharding-Jdbc的Jar包,应用程序通过Sharding-Jdbc操作分库分表后的数据库和数据表,由于Sharding-Jdbc是对Jdbc驱动的增强,使用Sharding-Jdbc就像使用Jdbc驱动一样,在应用程序中是无需指定具体要操作的分库和分表的
CREATE DATABASE lg_order CHARACTER SET ‘utf8‘; DROP TABLE IF EXISTS pay_order_1; CREATE TABLE pay_order_1 ( order_id BIGINT(20) PRIMARY KEY AUTO_INCREMENT , user_id INT(11) , product_name VARCHAR(128), COUNT INT(11) ); DROP TABLE IF EXISTS pay_order_2; CREATE TABLE pay_order_2 ( order_id BIGINT(20) PRIMARY KEY AUTO_INCREMENT , user_id INT(11) , product_name VARCHAR(128), COUNT INT(11) );
Mycat 是基于 Proxy,它复写了 MySQL 协议,将 Mycat Server 伪装成一个 MySQL 数据库,而
Sharding-JDBC 是基于 JDBC 的扩展,是以 jar 包的形式提供轻量级服务的
原文:https://www.cnblogs.com/forever-fate/p/15311830.html