Placement Rules in SQL 特性用于通过 SQL 接口配置数据在 TiKV 集群中的放置位置。通过该功能,用户可以将表和分区指定部署至不同的地域、机房、机柜、主机。
适用场景包括低成本优化数据高可用策略、保证本地的数据副本可用于本地 Stale Read 读取、遵守数据本地要求等。
该功能可以实现以下业务场景:
合并多个不同业务的数据库,大幅减少数据库常规运维管理的成本
增加重要数据的副本数,提高业务可用性和数据可靠性
将最新数据存入 NVMe,历史数据存入 SSD,降低归档数据存储成本
把热点数据的 leader 放到高性能的 TiKV 实例上
将冷数据分离到不同的存储中以提高可用性
支持物理隔离不同用户之间的计算资源,满足实例内部不同用户的隔离需求,以及不同混合负载 CPU、I/O、内存等资源隔离的需求
#创建放置策略
指定放置规则,首先需要通过 CREATE PLACEMENT POLICY 语句创建放置策略 (placement policy)。
CREATE PLACEMENT POLICY myplacementpolicy PRIMARY_REGION="us-east-1" REGIONS="us-east-1,us-west-1";
CREATE TABLE t1 (a INT) PLACEMENT POLICY=myplacementpolicy;
CREATE TABLE t2 (a INT);
ALTER TABLE t2 PLACEMENT POLICY=myplacementpolicy;
#修改放置策略
ALTER PLACEMENT POLICY myplacementpolicy FOLLOWERS=5;
#查看放置策略
SHOW CREATE TABLE t1
select * from information_schema.placement_policies
show placement labels;