适用于linux平台下配置tidb 6.x集群中频繁被访问且很少被修改的热点小表,表大小小于64MB且不能为分区表。
tidb缓存表把整张表的数据加载到TiDB服务器的内存中,直接从内存中获取表数据,避免从 TiKV 获取表数据,从而提升读性能。
1.已配置tidb 6.x集群且运行正常
TiDB 缓存表功能适用于以下特点的表:
当表的数据量不大,访问又特别频繁的情况下,数据会集中在 TiKV 一个 Region 上,形成热点,从而影响性能。因此,TiDB 缓存表的典型使用场景如下:
以配置表为例,当业务重启的瞬间,全部连接一起加载配置,会造成较高的数据库读延迟。如果使用了缓存表,则可以解决这样的问题。
1.创建配置测试表,并插入测试数据
CREATE TABLE config01 (
id int(11) NOT NULL,
name varchar(36) NOT NULL,
value varchar(36) NOT NULL,
enabled tinyint(1) DEFAULT '1',
primary key(id)
);
insert into config01 values (1,'n1','v1',1);
insert into config01 values (2,'n2','v2',0);
insert into config01 values (3,'n3','v3',1);
insert into config01 values (4,'n4','v4',1);
insert into config01 values (5,'n5','v5',0);
2.通过 ALTER TABLE 语句,将表config01设置成缓存表:
ALTER TABLE config01 CACHE;
Query OK, 0 rows affected (0.01 sec)
3.验证config01是否为缓存表