Generated with sparks and insights from 52 sources

img6

img7

img8

img9

img10

img11

Introduction

  • ShardingSphere 支持将多个数据源合并为一个统一的逻辑数据源。

  • 在一个SQL语句中,ShardingSphere 可以访问多个数据源。

  • ShardingSphere 的理念是像使用一个数据源一样使用多数据源。

  • ShardingSphere 对SQL的访问都是在同一个逻辑schema之上。

  • ShardingSphere 支持DML、DDL、DCL、TCL和部分DAL操作。

  • ShardingSphere 不支持包含schema的SQL。

  • ShardingSphere 对分片键进行操作时,运算表达式和函数中的分片键会导致全路由。

支持的SQL [1]

  • SELECT 语句: 支持基本的SELECT查询。

  • INSERT 语句: 支持基本的INSERT操作。

  • UPDATE 语句: 支持基本的UPDATE操作。

  • DELETE 语句: 支持基本的DELETE操作。

  • CREATE TABLE 语句: 支持创建表操作。

  • ALTER TABLE 语句: 支持修改表结构操作。

  • DROP TABLE 语句: 支持删除表操作。

  • TRUNCATE TABLE 语句: 支持清空表操作。

  • CREATE INDEX 语句: 支持创建索引操作。

  • DROP INDEX 语句: 支持删除索引操作。

img6

img7

img8

img9

img10

img11

不支持的SQL [1]

  • CASE WHEN 语句: 不支持。

  • HAVING 语句: 不支持。

  • UNION (ALL) 语句: 不支持。

  • 包含schema的SQL: 不支持。

  • 子查询中包含聚合函数: 不支持。

  • 运算表达式和函数中的分片键: 会导致全路由。

  • INSERT INTO ... SELECT 语句: 不支持。

  • SUM(DISTINCT col1), SUM(col1) 语句: 不支持同时使用普通聚合函数和DISTINCT聚合函数。

img6

img7

img8

img9

img10

img11

多数据源配置 [2]

  • ShardingSphere 可以集成多个数据源。

  • 需要在配置文件中指定多个数据源的连接信息。

  • 可以使用动态数据源组件来切换数据源。

  • 在Spring Boot项目中,可以使用@DS注解来切换数据源。

  • 需要在pom.xml中引入相关依赖。

  • 可以通过配置分表规则来实现分表操作。

  • 可以通过配置分库规则来实现分库操作。

  • 需要根据业务需求选择合适的数据源。

img6

img7

img8

img9

img10

img11

ShardingSphere 特性 [2]

  • 数据分片: 支持水平分片和垂直分片。

  • 读写分离: 支持主从复制,实现读写分离。

  • 多数据副本: 支持多数据副本,提高数据可用性。

  • 数据加密: 支持数据加密,保障数据安全。

  • 影子库压测: 支持影子库压测,保障系统稳定性。

  • 兼容多种数据库: 支持MySQL、PostgreSQL、Oracle等多种数据库。

  • 可插拔架构: 支持插件化扩展,灵活性高。

  • 透明化数据库代理: 提供sharding proxy,实现透明化数据库代理。

img6

img7

img8

img9

img10

img11

ShardingSphere 使用场景 [2]

  • 海量数据存储: 适用于需要存储和处理海量数据的场景。

  • 高并发读写: 适用于需要高并发读写操作的场景。

  • 分布式系统: 适用于分布式系统中的数据管理。

  • 数据安全: 适用于对数据安全性要求高的场景。

  • 系统稳定性: 适用于需要保障系统稳定性的场景。

  • 多数据库支持: 适用于需要兼容多种数据库的场景。

  • 业务无感知: 适用于需要对业务代码无感知的场景。

  • 灵活扩展: 适用于需要灵活扩展的场景。

img6

img7

img8

img9

img10

img11

<br><br>