数据分片 #
适用场景
在当前互联网时代的背景下,业务数据呈现快速增长的趋势,面对海量数据的存储和访问,传统关系型数据库单一节点存储的解决方案存在许多问题,在性能、可用性和运维成本这三方面已经难以满足海量数据的场景。数据分片可以按照某个维度,将单一数据库中的数据拆分至多个数据库或表中存储,从而达到提升性能和可用性的目的。
前提条件
以 DBPlusEngine-Proxy 为例,下载并解压 proxy,参考如下配置,在 conf 目录下配置对应的配置文件后启动 proxy。
配置示例
config-sharding.yaml
rules:
- !SHARDING
tables:
t_order:
databaseStrategy:
standard:
shardingColumn: user_id
shardingAlgorithmName: database_inline
tableStrategy:
standard:
shardingColumn: order_id
shardingAlgorithmName: table_inline
shardingAlgorithms:
database_inline:
type: INLINE
props:
algorithm-expression: ds_${user_id % 2}
table_inline:
type: INLINE
props:
algorithm-expression: t_order_${order_id % 2}
相关参考